Memilih arsitektur aplikasi Google Chat

Halaman ini menjelaskan pendekatan arsitektur layanan umum yang digunakan untuk membuat aplikasi Google Chat. Jika Anda sudah memiliki aplikasi yang ingin terintegrasi ke dalam Google Chat, Anda dapat menggunakan atau menyesuaikan penerapan yang ada. Jika Anda membangun aplikasi Chat baru, halaman ini menampilkan informasi serupa dalam beberapa cara berbeda untuk membantu Anda memilih arsitektur yang tepat untuk kasus penggunaan Anda:

Ringkasan menurut fitur dan kemampuan

Tabel berikut menyoroti fitur dan kemampuan utama Aplikasi chat dan rekomendasi () gaya arsitektur layanan. Dalam beberapa kasus, gaya arsitektur lain mungkin dapat dikembangkan dengan fitur-fitur ini, tetapi tidak sesuai untuk kasus penggunaan seperti gaya ().

Fitur dan kemampuan

Layanan web atau HTTP

Pub/Sub

Webhook

Apps Script

AppSheet

Dialogflow

Skrip

Penonton yang dituju

Tim Anda

Organisasi Anda

Publik

Interaktivitas pengguna

Menggunakan natural language processing

Pola pesan

Mengirim dan menerima pesan sinkron

Kirim dan terima pesan sinkron, serta kirim pesan asinkron

Hanya kirim pesan asinkron

Mengirim pesan dari sistem eksternal ke satu ruang Chat

Mengakses layanan dan sistem lainnya

Integrasikan dengan layanan Google yang lain

Berkomunikasi di balik firewall

Membuat kueri atau berlangganan peristiwa Chat

Gaya coding dan deployment

Pengembangan tanpa kode

Pengembangan dengan sedikit kode

Pengembangan dalam bahasa pemrograman pilihan Anda

DevOps yang Disederhanakan

Pengelolaan DevOps dan CI/CD yang lengkap

Gaya arsitektur service

Bagian ini menjelaskan beberapa pendekatan arsitektur yang paling umum digunakan untuk membuat aplikasi Chat.

Layanan web atau HTTP

Layanan web atau HTTP adalah arsitektur yang paling umum di-deploy karena memberikan fleksibilitas paling besar bagi developer untuk Aplikasi Chat. Arsitektur ini direkomendasikan untuk kasus penggunaan:

  • Aplikasi Chat di-deploy ke publik pada Google Workspace Marketplace.
  • Aplikasi Chat dapat mengirim dan menerima semua pesan pola: mengirim dan menerima pesan sinkron, mengirim asinkron pesan, dan mengirim pesan dari sistem eksternal.
  • Aplikasi Chat dikembangkan dalam pemrograman apa pun di bahasa target.
  • Aplikasi Chat memerlukan DevOps dan CI/CD yang lengkap otomatisasi pengelolaan biaya.
  • Layanan aplikasi Chat diimplementasikan di cloud atau server lokal.

Dalam desain ini, Anda mengonfigurasi Chat untuk diintegrasikan dengan layanan jarak jauh dengan menggunakan HTTP, seperti yang ditampilkan dalam diagram berikut:

Arsitektur aplikasi Chat yang menggunakan layanan web di server lokal.

Pada diagram sebelumnya, pengguna berinteraksi dengan permintaan HTTP Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan di ruang Chat kepada Aplikasi Chat.
  2. Permintaan HTTP dikirim ke server web yang merupakan {i>cloud<i} atau sistem lokal yang berisi aplikasi Chat logika.
  3. Secara opsional, logika aplikasi Chat dapat berinteraksi dengan layanan pihak ketiga eksternal, seperti sistem manajemen proyek atau alat penjualan tiket.
  4. Server web mengirimkan respons HTTP kembali ke Layanan aplikasi Chat di Chat.
  5. Respons dikirimkan ke pengguna.
  6. Secara opsional, aplikasi Chat dapat memanggil Chat API untuk memposting pesan secara asinkron atau melakukan operasional bisnis.

Arsitektur ini memberi Anda fleksibilitas untuk menggunakan library dan komponen yang sudah ada di sistem Anda karena langkah ini Aplikasi chat dapat dirancang menggunakan bahasa pemrograman yang berbeda. Ada berbagai cara untuk menerapkan arsitektur ini. Di Google Cloud, Anda dapat menggunakan Cloud Functions, Cloud Run, dan App Engine. Untuk memulai, lihat Buat aplikasi Google Chat.

Pub/Sub

Jika aplikasi Chat diimplementasikan di balik firewall, Chat tidak dapat melakukan panggilan HTTP ke dalamnya. Salah satu pendekatannya adalah dengan menggunakan Pub/Sub ke memungkinkan implementasi aplikasi Chat untuk berlangganan yang membawa pesan dari Chat. Pub/Sub adalah model layanan pesan yang memisahkan layanan yang menghasilkan pesan dari layanan memproses pesan-pesan tersebut. Arsitektur ini direkomendasikan untuk kasus penggunaan:

  • Aplikasi Chat dibangun di balik firewall.
  • Aplikasi Chat menerima peristiwa terkait ruang Chat.
  • Aplikasi Chat di-deploy ke organisasi Anda.
  • Aplikasi Chat dapat mengirim dan menerima permintaan pesan teks, dan dapat mengirim pesan asinkron.
  • Aplikasi Chat dikembangkan dalam pemrograman apa pun di bahasa target.
  • Aplikasi Chat memerlukan DevOps dan CI/CD yang lengkap otomatisasi pengelolaan biaya.

Diagram berikut menunjukkan arsitektur Aplikasi Chat yang dibangun dengan Pub/Sub:

Arsitektur aplikasi Chat yang diimplementasikan dengan Pub/Sub.

Pada diagram sebelumnya, pengguna berinteraksi dengan Pub/Sub Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan di Chat kepada aplikasi Chat, baik di pesan langsung maupun dalam Ruang Chat atau acara terjadi di ruang Chat dengan aplikasi Chat yang memiliki subscription Anda.

  2. Chat mengirimkan pesan ke topik Pub/Sub.

  3. Server aplikasi, yang merupakan sistem {i>cloud<i} atau lokal yang berisi logika aplikasi Chat, berlangganan ke topik Pub/Sub untuk menerima pesan melalui firewall.

  4. Secara opsional, aplikasi Chat dapat memanggil Chat API untuk memposting pesan secara asinkron atau melakukan operasional bisnis.

Untuk memulai, lihat Gunakan Pub/Sub sebagai endpoint untuk aplikasi Chat Anda.

Webhook

Anda dapat membuat aplikasi Chat yang hanya dapat mengirim pesan ke ruang Chat tertentu dengan menggunakan panggilan ke Chat URL webhook. Arsitektur ini direkomendasikan untuk kasus penggunaan berikut:

  • Aplikasi Chat di-deploy ke tim Anda.
  • Aplikasi Chat mengirim pesan dari eksternal ke satu ruang Chat.

Dengan arsitektur ini, aplikasi Chat dibatasi pada ruang Chat tertentu dan tidak mengizinkan interaksi pengguna, yang ditampilkan dalam diagram berikut:

Arsitektur untuk webhook masuk agar dapat mengirim pesan asinkron ke Chat.

Dalam diagram sebelumnya, aplikasi Chat memiliki hal-hal berikut aliran informasi:

  1. Logika aplikasi Chat menerima informasi dari layanan pihak ketiga eksternal, seperti sistem manajemen proyek atau alat penjualan tiket.
  2. Logika aplikasi Chat dihosting di cloud atau lokal yang dapat mengirim pesan dengan menggunakan URL webhook ke ruang Chat tertentu.
  3. Pengguna dapat menerima pesan dari aplikasi Chat di ruang Chat tertentu, tetapi tidak dapat berinteraksi dengan Aplikasi Chat.

Jenis aplikasi Chat ini tidak dapat dibagikan di perangkat lain Ruang Chat atau dengan tim lain dan tidak dapat dipublikasikan ke Google Workspace Marketplace. Webhook masuk direkomendasikan untuk Aplikasi chat untuk melaporkan notifikasi atau status, atau untuk beberapa jenis Pembuatan prototipe aplikasi Chat.

Untuk memulai, lihat Mengirim pesan ke Chat dengan webhook.

Apps Script

Anda dapat membuat logika aplikasi Chat sepenuhnya di pada JavaScript. Google Apps Script adalah platform pengembangan yang hanya memerlukan sedikit kode untuk Aplikasi Chat. Apps Script menangani alur otorisasi dan token OAuth 2.0 untuk otentikasi pengguna. Anda dapat menggunakan Apps Script untuk membuat aplikasi Chat publik, tetapi tidak direkomendasikan karena harian kuota dan batas.

Arsitektur ini direkomendasikan untuk kasus penggunaan berikut:

  • Aplikasi Chat di-deploy untuk tim Anda, atau organisasi Anda.
  • Aplikasi Chat dapat mengirim dan menerima semua pesan pola: mengirim dan menerima pesan sinkron, mengirim asinkron pesan, dan mengirim pesan dari sistem eksternal.
  • Aplikasi Chat memerlukan DevOps yang disederhanakan otomatisasi pengelolaan biaya.

Arsitektur ini berguna untuk aplikasi Chat yang juga terintegrasi dengan layanan Google Workspace dan Google lainnya, seperti Google Spreadsheet, Google Slide, Google Kalender, Google Drive, Google Maps, dan YouTube, seperti yang ditampilkan dalam diagram berikut:

Arsitektur aplikasi Chat yang diimplementasikan dengan Apps Script.

Pada diagram sebelumnya, pengguna berinteraksi dengan Apps Script Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan ke aplikasi Chat, baik dalam pesan langsung atau di ruang Chat.
  2. Logika aplikasi Chat yang diimplementasikan di Apps Script, yang berada di Google Cloud, menerima menulis pesan.
  3. Secara opsional, logika aplikasi Chat dapat diintegrasikan dengan Layanan Google Workspace, seperti Kalender atau Spreadsheet, atau Layanan Google lainnya, seperti Google Maps atau YouTube.
  4. Logika aplikasi Chat mengirimkan respons kembali ke Layanan aplikasi Chat di Chat.
  5. Respons dikirimkan ke pengguna.

Untuk memulai, lihat Membangun aplikasi Chat dengan Apps Script.

AppSheet

Anda dapat membuat aplikasi Chat bersama domain tanpa kode menggunakan AppSheet. Anda dapat menyederhanakan proses pengembangan dengan menggunakan mode konfigurasi otomatis dan template berikut untuk membuat Tindakan aplikasi Chat. Namun, beberapa Fitur aplikasi web AppSheet tidak tersedia di aplikasi Chat.

Arsitektur ini direkomendasikan untuk kasus penggunaan berikut:

  • Aplikasi Chat di-deploy untuk Anda dan tim.
  • Aplikasi Chat dapat mengirim dan menerima permintaan pesan teks, dan dapat mengirim pesan asinkron.
  • Aplikasi Chat memerlukan DevOps yang disederhanakan otomatisasi pengelolaan biaya.

Diagram berikut menunjukkan arsitektur Aplikasi Chat yang dibuat dengan AppSheet:

Arsitektur aplikasi Chat yang diimplementasikan dengan AppSheet.

Pada diagram sebelumnya, pengguna berinteraksi dengan AppSheet Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan di Chat kepada aplikasi Chat, baik di pesan langsung maupun dalam Ruang Chat.
  2. Logika aplikasi Chat yang diimplementasikan di AppSheet, yang terdapat di Google Cloud, menerima untuk membuat pesan email baru.
  3. Secara opsional, logika aplikasi Chat dapat diintegrasikan dengan Layanan Google Workspace, seperti Apps Script atau dan rencana project dengan Google Spreadsheet.
  4. Logika aplikasi Chat mengirimkan respons kembali ke Layanan aplikasi Chat di Chat.
  5. Respons dikirimkan ke pengguna.

Untuk memulai, lihat Membangun aplikasi Chat dengan AppSheet.

Dialogflow

Anda dapat membuat aplikasi Chat dengan Dialogflow, platform natural language untuk percakapan otomatis dan respons dinamis. Arsitektur ini direkomendasikan untuk kasus penggunaan berikut:

  • Aplikasi Chat dapat mengirim dan menerima permintaan membuat pesan teks.
  • Aplikasi Chat menggunakan natural language processing untuk menanggapi dan berinteraksi dengan pengguna.

Diagram berikut menunjukkan arsitektur Aplikasi Chat yang dibuat dengan Dialogflow:

Arsitektur aplikasi Chat yang diimplementasikan dengan Dialogflow.

Pada diagram sebelumnya, pengguna berinteraksi dengan Dialogflow Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan di Chat kepada aplikasi Chat, baik di pesan langsung maupun dalam Ruang Chat.
  2. Agen virtual Dialogflow, yang berada di Google Cloud, menerima dan memproses pesan untuk menghasilkan respons.
  3. Secara opsional, menggunakan Webhook Dialogflow, agen Dialogflow dapat berinteraksi dengan layanan pihak ketiga eksternal, seperti sebagai sistem manajemen proyek atau alat tiket.
  4. Agen Dialogflow mengirimkan respons kembali ke Layanan aplikasi Chat di Chat.
  5. Respons akan dikirim ke ruang Chat.

Untuk memulai, lihat Buat aplikasi Google Chat Dialogflow.

Aplikasi atau skrip command line

Anda dapat membuat aplikasi command line atau skrip yang mengirim mengirim pesan ke Chat atau melakukan operasi lain, seperti membuat ruang atau mengelola anggota ruang, tanpa mengizinkan pengguna secara langsung memanggil atau merespons aplikasi Chat di Chat. Arsitektur ini direkomendasikan untuk penggunaan berikut kasus:

  • Aplikasi Chat dikembangkan dalam pemrograman apa pun di bahasa target.
  • Aplikasi Chat hanya dapat mengirim pesan asinkron.

Diagram berikut menampilkan arsitektur:

Arsitektur aplikasi Chat yang diimplementasikan dengan aplikasi command line atau skrip.

Pada diagram sebelumnya, aplikasi Chat memiliki aliran informasi berikut:

  1. Aplikasi Chat memanggil Chat API untuk mengirim atau melakukan operasi lain.
  2. Chat menjalankan operasi yang diminta.
  3. Secara opsional, aplikasi Chat mencetak konfirmasi di menggunakan CLI.

Implementasi logika aplikasi Chat

Chat tidak membatasi cara Anda mengimplementasikan Logika aplikasi Chat. Anda dapat membuat perintah sintaksis tetap parser, menggunakan library atau layanan AI dan language processing yang canggih, berlangganan dan menanggapi peristiwa, atau apa pun yang sesuai dengan tujuan khusus Anda.

Menangani interaksi pengguna

Aplikasi Chat dapat menerima dan merespons interaksi pengguna dalam berbagai cara. Interaksi pengguna adalah tindakan apa pun yang diambil pengguna untuk memanggil atau berinteraksi dengan aplikasi Chat.

Parser perintah

Aplikasi Chat berbasis perintah memeriksa payload Peristiwa interaksi aplikasi Chat, kemudian mengekstrak perintah dan parameter dari konten ini. Misalnya, lihat Menyiapkan perintah garis miring untuk berinteraksi dengan pengguna Chat.

Pendekatan lainnya adalah membuat token pesan, mengekstrak perintah, lalu merujuk ke kamus yang memetakan perintah ke fungsi pengendali untuk setiap perintah.

Antarmuka pengguna berbasis dialog

Aplikasi berbasis dialog merespons Peristiwa interaksi aplikasi Chat dengan menampilkan model dialog di mana pengguna dapat berinteraksi dengan aplikasi Chat, seperti mengisi formulir atau meminta tindakan.

Setiap kali pengguna mengeksekusi tindakan dalam dialog, peristiwa interaksi baru dikirim ke aplikasi Chat, yang dapat merespons dengan mengupdate dialog atau mengirim pesan.

Natural language processing

Banyak implementasi aplikasi Chat menggunakan natural language natural language processing (NLP) untuk menentukan apa yang diminta pengguna. Ada banyak cara untuk mengimplementasikan NLP, dan Anda dapat memilih untuk mengimplementasikan NLP sesuai keinginan Anda.

Anda dapat menggunakan NLP di Implementasi aplikasi Chat dengan Dialogflow ES atau Integrasi Chat Dialogflow CX, yang memungkinkan Anda membuat agen virtual untuk percakapan otomatis dan dinamis yang dihasilkan.

Mengajukan permintaan ke Chat secara proaktif

Aplikasi chat juga dapat mengirim pesan atau permintaan lainnya ke Chat, yang tidak dipicu oleh interaksi pengguna langsung di Chat. Sebagai gantinya, aplikasi Chat tersebut dapat dipicu—misalnya, oleh aplikasi pihak ketiga atau menggunakan command line pemanggilan dari pengguna, namun pengguna tidak dapat berinteraksi dengan Aplikasi chat langsung di Chat.

Aplikasi Chat non-interaktif menggunakan Chat API untuk mengirim pesan atau jenis permintaan lainnya ke Chat.

Pola percakapan

Anda harus mempertimbangkan bagaimana Anda ingin aplikasi Chat Anda berinteraksi dengan pengguna. Bagian berikut ini menjelaskan pola percakapan yang mungkin diterapkan oleh aplikasi Chat Anda.

Panggilan dan respons (sinkron)

Dalam pola panggilan dan respons sinkron, model Aplikasi Chat merespons pesan dari pengguna di satu per satu. Satu pesan ke aplikasi Chat oleh pengguna menghasilkan satu respons dari aplikasi Chat, seperti yang ditunjukkan dalam dalam diagram berikut:

Arsitektur pesan sinkron.

Dalam diagram sebelumnya, pengguna berinteraksi dengan Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan sinkron ke Aplikasi Chat—misalnya, "Apa rapat saya berikutnya?".
  2. Aplikasi Chat mengirimkan pesan sinkron ke —misalnya, "Dr. Silva pada pukul 2.30".

Untuk jenis pola percakapan ini, Anda dapat menerapkan Arsitektur aplikasi Chat menggunakan layanan web, Pub/Sub, Apps Script, AppSheet, atau Dialogflow.

Beberapa respons (asinkron)

Pola beberapa respons dapat mencakup respons sinkron dan asinkron membuat pesan teks. Pola ini ditandai dengan komunikasi dua arah di antara pengguna dan aplikasi Chat, dengan Aplikasi Chat menghasilkan sejumlah pesan tambahan, sebagaimana ditunjukkan dalam diagram berikut:

Arsitektur pesan asinkron.

Dalam diagram sebelumnya, pengguna berinteraksi dengan Aplikasi Chat memiliki alur informasi berikut:

  1. Pengguna mengirim pesan sinkron ke Aplikasi Chat—misalnya, "Pantau traffic".
  2. Aplikasi Chat mengirimkan pesan sinkron ke untuk mengonfirmasi permintaan—misalnya, "Memantau aktif".
  3. Kemudian, aplikasi Chat mengirim satu atau beberapa ke pengguna dengan memanggil REST API—misalnya, "New traffic".
  4. Pengguna mengirim pesan sinkron tambahan ke Aplikasi Chat—misalnya, "Abaikan traffic".
  5. Aplikasi Chat mengirimkan pesan sinkron ke mengonfirmasi permintaan—misalnya, "Monitoring off".

Untuk jenis pola percakapan ini, Anda dapat menerapkan Arsitektur aplikasi Chat menggunakan layanan web, Pub/Sub, Apps Script, atau AppSheet.

Membuat kueri atau berlangganan peristiwa (asinkron)

Dalam pola asinkron berbasis peristiwa, aplikasi Chat menerima peristiwa dengan membuat kueri Chat API atau membuat berlangganan ruang Chat atau pengguna menggunakan Google Workspace Events API. Peristiwa menunjukkan perubahan pada Chat fitur, seperti saat pesan baru diposting atau saat pengguna bergabung ke ruang. Aplikasi Chat berbasis peristiwa memeriksa payload peristiwa untuk mendapatkan data tentang Chat yang diubah sumber daya, lalu respons yang sesuai.

Aplikasi Chat dapat menerima berbagai jenis peristiwa, termasuk acara tentang ruang, langganan, pesan, dan reaksi. Ketika seorang Aplikasi Chat menerima peristiwa dengan membuat kueri Chat API atau melalui langganan aktif, Aplikasi Chat kemudian dapat secara opsional menghasilkan sejumlah respons asinkron, yang dikirimkan kembali ke Chat menggunakan API Chat.

Anda dapat menggunakan jenis logika ini untuk memperbarui sistem eksternal, seperti tiket sistem pengelolaan otomatis, atau mengirim pesan ke ruang Chat secara asinkron—misalnya, dengan mengirim pesan selamat datang saat pengguna baru bergabung ruang Chat.

Diagram berikut menunjukkan contoh percakapan berbasis peristiwa pola:

Arsitektur langganan peristiwa Chat

Dalam diagram sebelumnya, interaksi antara Chat dan Aplikasi Chat memiliki alur informasi berikut:

  1. Aplikasi Chat berlangganan ruang Google Chat.
  2. Ruang langganan aplikasi Chat perubahan.
  3. Aplikasi Chat mengirimkan peristiwa ke topik di Pub/Sub, yang berfungsi sebagai endpoint notifikasi untuk langganan. Tujuan berisi data tentang hal-hal yang berubah di resource.
  4. Aplikasi Chat memproses Pesan Pub/Sub yang berisi peristiwa, dan jika perlu, akan mengambil tindakan.

Untuk jenis pola percakapan ini, Anda dapat menerapkan Arsitektur aplikasi Chat menggunakan Pub/Sub, layanan web, atau Apps Script.

Untuk mempelajari lebih lanjut cara menerima dan merespons acara, lihat Menangani peristiwa dari peristiwa Google Chat.

Pesan satu arah dari aplikasi Chat

Pesan satu arah dari pola aplikasi Chat memungkinkan Aplikasi Chat mengirim pesan asinkron ke Ruang Chat tetapi tidak memungkinkan pengguna berinteraksi langsung dengan Aplikasi Chat. Pola ini tidak berupa percakapan atau interaktif, tetapi dapat berguna untuk hal-hal seperti pelaporan alarm, seperti yang diagram berikut:

Arsitektur pesan satu arah.

Dalam diagram sebelumnya, pengguna dalam ruang yang sama dengan Aplikasi Chat memiliki alur informasi berikut:

  • Aplikasi Chat mengirim pesan asinkron kepada pengguna dengan memanggil Chat API atau mempostingnya ke webhook URL—misalnya, "Notifikasi tambahan antrean".
  • Secara opsional, aplikasi Chat mengirim dan asinkron.

Untuk jenis pola percakapan ini, Anda dapat menerapkan Arsitektur aplikasi Chat menggunakan layanan web, webhook, Apps Script, AppSheet, aplikasi command line, atau skrip.

Pesan satu arah ke aplikasi Chat

Pesan satu arah ke pola aplikasi Chat memungkinkan pengguna mengirim pesan ke aplikasi Chat tanpa Aplikasi chat merespons saat masih memproses permintaan. Meskipun arsitektur ini secara teknis memungkinkan, ini menghasilkan pengguna yang buruk pengalaman yang buruk dan kami sangat tidak merekomendasikan pola ini.