Apa itu Complex Event Processing (CEP)?
Complex Event Processing (CEP) adalah teknologi yang digunakan untuk memprediksi kejadian-kejadian tingkat tinggi. Metode ini melacak dan menganalisis aliran data secara real-time untuk mendapatkan wawasan tentang berbagai peristiwa.
Dalam konteks ini, peristiwa (event) adalah setiap kejadian yang dapat diidentifikasi dan memiliki signifikansi terhadap hardware atau software. Misalnya, event bisa berupa klik mouse, pemuatan program, atau error yang terjadi dalam suatu aplikasi.
Tujuan dari CEP adalah mengidentifikasi event yang bermakna—seperti ancaman keamanan dalam software—secara real-time sehingga organisasi dapat meresponsnya dengan cepat. Dengan menganalisis hubungan sebab-akibat antar event, CEP memungkinkan pengambilan tindakan yang lebih efektif terhadap peluang atau ancaman tertentu.
CEP bekerja dengan memproses beberapa aliran data dari berbagai event dan menemukan hubungan di antara event yang tampaknya tidak terkait.
Sejarah Complex Event Processing (CEP)
Konsep CEP pertama kali dikembangkan pada tahun 1990-an oleh Profesor David Luckham dari Universitas Stanford.
Pada saat itu, Luckham sedang meneliti bahasa pemrograman terdistribusi yang dapat berjalan secara paralel dan berkomunikasi melalui event.
“Kami menyadari bahwa perlu adanya abstraksi dari event tingkat rendah menjadi event tingkat tinggi, dilakukan beberapa kali untuk menciptakan simulasi yang lebih akurat,” kata Luckham dalam wawancara dengan TechTarget.
Salah satu contoh aplikasinya terjadi ketika Intel datang ke tim Luckham untuk mencari tahu mengapa komponen adder dalam chip baru mereka tidak berfungsi dengan benar. Awalnya, mereka mengira ada kesalahan dalam pustaka simulasi, tetapi ternyata masalahnya terletak pada kurangnya analisis terhadap data mentah yang dihasilkan oleh simulasi.
“Pada masa itu, output simulasi masih dianalisis secara manual oleh manusia dalam bentuk deretan angka biner, sehingga sangat mudah untuk melewatkan sesuatu yang penting,” jelas Luckham. Ia kemudian menciptakan istilah complex events untuk menggambarkan event tingkat tinggi yang dikorelasikan dari sejumlah event tingkat rendah.
Tim Luckham merumuskan tiga prinsip utama CEP:
- Sinkronisasi – Mengacu pada kebutuhan untuk menyesuaikan waktu dari berbagai event, karena adanya perbedaan waktu pemrosesan, jalur jaringan, dan latensi.
- Hierarki Event – Berkaitan dengan model untuk mengekspresikan event tingkat rendah, misalnya bagaimana klik pengguna dapat diterjemahkan menjadi perjalanan pengguna dalam sebuah sistem.
- Kausalitas – Memberikan kerangka kerja untuk menghubungkan hubungan sebab-akibat yang tersembunyi dalam aliran event.
Luckham mencatat bahwa sebagian besar alat CEP saat ini lebih berfokus pada sinkronisasi. Namun, masih diperlukan pengembangan lebih lanjut agar konsep hierarki event dan kausalitas dapat diintegrasikan ke dalam alat-alat modern.
Manfaat Complex Event Processing
Kemampuan CEP untuk mendeteksi pola kompleks dalam berbagai sumber data memberikan banyak keuntungan, di antaranya:
- Mempermudah pemahaman hubungan antara event tingkat tinggi atau kompleks.
- Membantu menghubungkan event individu ke dalam rantai event yang lebih kompleks.
- Menyederhanakan pengembangan dan penyempurnaan logika bisnis.
- Dapat diintegrasikan ke dalam aplikasi deteksi penipuan, logistik, dan Internet of Things (IoT).
- Membantu membangun simulasi, model, dan analisis prediktif yang lebih akurat.
- Mempercepat respons terhadap event yang berpotensi merugikan.
- Membantu mengenali pola dalam proses pengumpulan data yang mengalir secara real-time.
Teknik CEP dalam mengenali, menganalisis, dan memproses data secara real-time telah menjadi elemen fundamental dalam berbagai proyek bisnis modern. Seperti yang dikatakan Luckham, “Saat ini, banyak bisnis merencanakan inisiatif strategis di bawah istilah seperti ‘Business Analytics’ dan ‘Optimization’. Meskipun mereka mungkin tidak menyadarinya, Complex Event Processing sering kali menjadi landasan utama inisiatif tersebut.”
Use Case untuk Complex Event Processing
Saat ini, banyak organisasi yang menggunakan CEP untuk berbagai kebutuhan, di antaranya:
- Meningkatkan algoritma perdagangan saham.
- Mengembangkan strategi pemasaran real-time yang lebih responsif.
- Menciptakan sistem perawatan prediktif yang lebih adaptif dan akurat.
- Mendeteksi aktivitas penipuan.
- Mengembangkan sistem IoT yang lebih kompleks.
- Meningkatkan ketahanan dan fleksibilitas dalam rantai pasokan dan logistik.
- Digunakan dalam produk operational intelligence (OI) untuk menghubungkan data stream dengan data historis guna mendapatkan wawasan lebih mendalam.
Seiring berkembangnya arsitektur cloud, istilah seperti event stream processing (ESP), real-time stream processing, dan streaming architectures mulai menggantikan penggunaan istilah CEP dalam banyak diskusi teknis maupun pemasaran produk.
Secara konsep matematis, CEP tetap relevan, tetapi istilahnya sendiri jarang digunakan. Namun, dalam konteks pendeteksian pola temporal—misalnya menemukan pola baru dalam data streaming—dan integrasi data stream ke dalam database, CEP masih memiliki peran penting.
Salah satu alasan mengapa istilah CEP mulai jarang digunakan adalah karena definisi “event kompleks” sendiri. Misalnya, event berbasis operator agregasi aritmatika (seperti menghitung jumlah tweet dalam 10 menit terakhir tentang topik tertentu di “X”) sering kali tidak dianggap sebagai event kompleks karena komputasinya relatif sederhana. Oleh karena itu, perangkat lunak tidak perlu sekompleks sistem CEP.
“Teknologi CEP juga sering disebut sebagai stream analytics atau streaming analytics. Streaming analytics banyak digunakan oleh organisasi yang membutuhkan wawasan hampir real-time dari data streaming dalam jumlah besar yang mengalir melalui jaringan mereka.
Bentuk analitik streaming yang lebih canggih, seperti pendeteksian pola, diterapkan pada berbagai platform event stream processing seperti Apache Flink, Spark Streaming, dan Tibco StreamBase.
Karakteristik stream processing dalam CEP juga kadang-kadang dikodekan secara manual ke dalam SaaS, aplikasi paket, atau alat lain, sehingga produk tersebut menerapkan konsep matematika yang sama dengan CEP tanpa menggunakan platform CEP/ESP.
Meskipun begitu, sebagian besar alat CEP awal masih tersedia—umumnya dikemas sebagai stream analytics—dan tetap relevan. Namun, platform event stream processing yang lebih baru seperti Microsoft Azure Stream Analytics serta platform ESP open-source seperti Flink, Spark Streaming, dan Kafka Streams kini lebih banyak digunakan dalam pengembangan aplikasi baru.
Perbedaan Complex Event Processing dan Event Stream Processing
CEP merupakan versi yang lebih canggih dari event stream processing. Sama seperti CEP, ESP beroperasi secara real-time dan menyediakan wawasan dari data stream.
Namun, perbedaannya adalah ESP memproses event sesuai dengan urutan kedatangannya, sedangkan CEP dapat memproses beberapa event dari berbagai sumber data yang masuk secara bersamaan.
Platform Populer untuk Complex Event Processing
Beberapa platform data streaming yang sering digunakan dalam CEP meliputi:
- Amazon Kinesis
- Apache Kafka
- IBM Streams
- IBM Operational Decision Manager (ODM)
- InRule
- Microsoft Azure Stream Analytics
- Microsoft StreamInsight
- Oracle Stream Analytics
- Oracle Stream Explorer
Sebagai contoh, Amazon Kinesis dirancang untuk mendeteksi, memproses, dan menganalisis data stream real-time untuk keperluan event analytics. Amazon Kinesis memiliki fitur seperti Kinesis Data Streams untuk streaming data video, Kinesis Data Firehose untuk menyimpan data streaming ke data lakes, sumber data, dan layanan analitik, serta Kinesis Data Analytics untuk menganalisis data streaming dalam jumlah besar secara real-time.
Sementara itu, Apache Kafka adalah platform event streaming terdistribusi yang dapat dijalankan di bare-metal, VM, container, dan cloud. Kafka berfokus pada tiga kemampuan utama: membaca/menulis event stream, menyimpan event stream, serta memproses event stream secara real-time.