Perbedaan Service dengan Application (Service VS Application)



Perbedaan Service dengan Application

Mungkin beberapa dari kalian baru saja mendengar istilah service (daemon untuk Unix atau Linux dan Agent untuk MacOS). Mungkin bagi kalian service itu aplikasi. Ada benarnya sih, cuman ada definisi yang lebih khusus mengenai service.

Nah, service merupakan sebuah aplikasi yang digunakan untuk melayani satu atau beberapa fungsi khusus. Service ini berjalan secara background atau tak tampak sehingga kita tidak dapat berinteraksi “secara langsung” dengannya. Kita tidak dapat memberikan instruksi pada service untuk menjalankan fungsi tertentu. Jadi dia berjalan berdasarkan prosedurnya sendiri. Salah satu cara agar kita bisa berkomunikasi dengan service adalah dengan mengoprek beberapa konfigurasi miliknya atau dapat juga menggunakan aplikasi yang menggunakan layanannya.

Service sering kali dikaitkan dengan multitasking dan proses dari service biasanya dipicu (initialization/init) oleh proses induk (parent process). Sebagai contoh, ketika anda menjalankan aplikasi Gammu, service untuk menerima sms akan dijalankan. Jadi ada sebuah fungsi khusus yang diperuntukkan untuk tujuan khusus pula, namun kita tidak bisa mengendalikan secara langsung fungsi tersebut.

Service VS Application

Beberapa perbedaan mendasar antara service dengan application:
Kapabilitas
Service
Application
Penangan fungsi
Menangani satu atau beberapa fungsi secara khusus.
Menangani banyak fungsi yang lebih umum sehingga user dapat menggunakannya secara bebas
Penggunaan
Digunakan oleh aplikasi yang membutuhkan fasilitasnya
Digunakan secara langsung oleh user.
Cakupan Permasalahan
Menangani masalah dengan cakupan lebih sempit
Menargetkan masalah secara global sesuai berdasarkan fungsi utama aplikasi tersebut.

Nah, itu saja yang dapat saya sampaikan. Semoga bermanfaat :D

Source:
http://tutorials.jenkov.com/soa/services-applications.html
http://wiki.freepascal.org/Daemons_and_Services
https://en.wikipedia.org/wiki/Daemon_(computing)

HAPPY A THAUSAND VIEWS


Selamat untuk blog saya yang sederhana, jarang update dan isinya basi semua. Blog ini untuk pertama kalinya telah mencapai kurang lebih 1000 (seribu) views perhari. Itu berdasarkan statistik yang ada pada blog saya.




Bagi saya, ini merupakan hal baik dan membuat saya senang, walaupun saya nggak yakin kalo yang berkunjung ke blog saya itu adalah untuk menikmati kontennya. Bisa jadi orang iseng, orang numpang SEO (backlink), atau bahkan bot yang numpang lewat.


Blog ini adalah blog sampah. Jadi kalau misalkan ada yang berpikiran blog ini pake cara curang   atau isitilahnya Blackhat SEO  itu mustahil. Saya nggak perlu repot-repot pake cara yang merepotkan hanya untuk meningkatkan trafik. Karena sama sekali nggak ada ads pada blog ini.


Dulu pernah daftarin adsense tapi ditolak (sempat lihat kalau blog tidak boleh memuat konten tertentu). Mungkin itu salah satu alasannya blog ini ditolak.


Berikut adalah konten yang paling banyak diakses:



Ya, terima kasih para Conaners yang udah berkunjung ke konten saya ini yang berjudul Hubungan Manis antara Conan Edogawa dan Haibara Ai. Jika dari pengamatan saya, rata-rata pengunjung yang meninggalkan komentar adalah pengunjung yang menyukai tokoh Haibara Ai.


Yah dengan ini harapan saya adalah target saya terpenuhi untuk one day one post untuk setiap label konten saya, hehe

Demikian perasaan bahagia dari saya. Yuk nulis, berbagi dan sebarkan pengetahuan agar bisa bermanfaat bagi sesama :D


Konfigurasi MikroTik Menggunakan Winbox pada Linux



Pada post sebelumnyav (KLIK DISINI), diketahui bahwa untuk menggunakan Winbox, RouterBoard (RB) haruslah mempunyai sebuah IP disalah satu ethernya. Barulah PC dapat berkomunikasi dengan RB pada ether tersebut menggunakan aplikasi Winbox.

Sebenarnya mactelnet tidak perlu digunakan untuk memberikan IP pada salah satu ethernya agar bisa terhubung dengan MikroTik seperti analisa diatas. Winbox dapat langsung dipakai dengan menggunakan mac address ataupun IP address.

Pada susunan OSI model, semua data dapat dilewatkan ketika posisinya ada diatas layer 3 (network). Enkapsulasi data dapat dibuka ketika dia telah melewati layer nework. Oleh karena itu, interface komputer yang akan digunakan untuk berkomunikasi pada RB haruslah mempunyai IP address. IP address yang digunakan adalah bebas dan tidak mementingkan apakah dia satu network atau tidak.

Untuk lebih mudahnya, buat saja 3 profil untuk satu interface pada Network Manager. DHCP untuk koneksi yang butuh IP secara otomatis, MikroTik untuk koneksi pada RB dan Manual untuk koneksi dengan IP statis.



Pada profil MikroTik, buat isikan dengan IP address sembarang dan gateway yang satu jaringan dengan IP address tersebut.



Selanjutnya hubungkan MikroTik pada PC. Jangan lupa untuk memutus jaringan lainnya, seperti Wifi ataupun Virtual Machine seperti VMware ataupun Virtualbox (jangan dijalankan).


Buka Winbox dan lihat pada tab neighbors. Tekan tombol refresh apabila tidak ada entry mac address pada list Winbox. Apabila masih tidak ada entry mac address, cek apakah ada firewall yang menghalangi trafik masuk atau tidak terutama pada chain INPUT dan OUTPUT.



Bisa dilihat bahwa chain INPUT dan OUTPUT mempunyai polici DROP. Bersihkan dan atur chain tersebut menjadi ACCEPT. Masukkan perintah berikut:

root@localhost:~# iptables -F
root@localhost:~# iptables -X
root@localhost:~# iptables -P INPUT ACCEPT
root@localhost:~# iptables -P OUTPUT ACCEPT
root@localhost:~# iptables -L

Maka akan muncul hasil seperti berikut:


Sekarang lihat pada Winbox dan tekan tombol Refresh. Maka entri baru akan muncul pada tabel neighbors.


Sekian dari artikel ini, semoga dapat membantu para user MikroTik dalam menjalankan Winbox pada sistem operasi Linux.



Install MikroTik RouterOS Menggunakan USB Flashdisk




LATAR BELAKANG
Untuk para pengguna MikroTik, mungkin pernah mengalami saat mereka merasa bahwa penggunaan RouterBoard tidaklah memadai jika dilihat dari resource-nya. Mungkin dari kecepatan CPU-nya yang tidak memadai, memory yang terbatas, serta storage kecil yang susah untuk dijadikan proxy internal sebagai caching . Dari keterbatasan itu, banyak sekali pengguna MikroTik beralih ke perangkat yang lebih besar (seperti komputer) untuk mendapatkan resource yang lebih tinggi.

Membuat Aplikasi Enkripsi Vigenere Berbasis Java


Beberapa waktu yang lalu, saya mendapatkan tugas dari kuliah Keamanan Jaringan. Yah, bisa dibilang kalau mata kuliah ini adalah mata kuliah wajib. Jadi, mau nggak mau harus diambil. Dalam mata kuliah ini dijelaskan bahwa setiap data yang lalu lalang di dalam jaringan tidak selalu aman. Oleh karena itu, dibutuhkan tindakkan pengamanan. Langkah pengamanan ini meliputi pengunaan ptotokol jaringan aman atau pengenkripsian data.


Apa itu enkripsi?
Ada banyak sekali algoritma pengenkripsian data. Namun, secara garis besar dapat digolongkan menjadi 2 bagian, yaitu enkripsi simetris dan asimetris. Letak perbedaan dari keduannya adalah pada kuncinya (key).


Pada enkripsi simetris, kunci yang digunakan untuk mendekrip sama dengan kunci untuk mengenkrip. Sehingga, apabila pihak luar mengetahui algoritma sekaligus kuncinya maka pesan dapat diketahui. Enkripsi ini sering disebut enkripsi klasik. Berbeda pada enkripsi asimetris. Enkripsi asimetris melibatkan dua kunci untuk saling mengenkripsi dan mendekripsi. Kunci yang pertama digunakan untuk mengenkripsi, disebut public key. Public key ini akan digunakan oleh pengirim pesan untuk mengenkripsi pesan. Walaupun orang lain mendapatkan public key ini, orang tersebut tidak bisa menerjemahkan chippertext-nya. Dipihak penerima, terdapat sebuah kunci yang disebut private key. Private key ini berfungsi untuk mendekrip pesan yang dikirimkan oleh pihak lainnya. Private key ini bersifat rentan, sehingga pihak penerima tidak boleh membiarkan pihak lain mengetahuinya.


Terdapat banyak algoritma dari enkripsi simetris. Salah satunya adalah algoritma Vigenere. Algoritma ini merupakan algoritma yang telah lama dipakai. Vigenere ditemukan oleh Giovan Battista Bellaso pada abad 19.


Vigenere Chiper
Itu tadi adalah sepintas mengenai enkripsi dan Vigenere Chiper. Selanjutnya adalah paparan mengenai bagaimana cara membuat enkripsi dan dekripsi Vigenere Chiper menggunakan bahasa pemrograman Java.


Berikut langkah-langkah yang harus dikerjakan:
1. Menentukan jenis karakter (Apakah ASCII ataukah beberapa karakter yang telah ditentukan)
2. Mernentukkan jumlah dari karakter total
3. Menuliskan daftar fungsi-fungsi yang kemungkinan dipergunakan.
4. Menuliskan Kode pokok
5. Menuliskan Kode tambahan (Interface dan I/O)


Pembahasan
Langkah 1 (Membuat Class Vigenere)
Jika menggunakan karakter yang terbatas, karakter tersebut harus didefinisikan dahulu dalam sebuah kamus yang berbentuk String. Selanjutnya, dapat di loop sepanjang length. Pembatasan karakter ini, akan mengakibatkan kegagalan dekripsi jika user memasukkan karakter tidak ada dalam kamus. Walaupun begitu, tidak ada salahnya jika jenis Vigenere ini dibuat.


Langkah 2 (Menentukan Jumlah Karakter)
Untuk aplikasi yang menggunakan kamus, dapat digunakan sytax length dalam menentukkan jumlah huruf. Sedangkan untuk ASCII, jumlah karakter total adalah 256.


Langkah 3 (Menuliskan Daftar Fungsi)
Fungsi-fungsi yang kemungkinan digunakan adalah:
1. Looping untuk mengulang huruf dalam kalimat yang akan dienkripsi (looping kalimat)
2. Fungsi untuk mengecek karakter spasi didalam looping
3. Looping untuk mengulang kunci yang ada didalam looping kalimat
4. Fungsi untuk mengkonversi dari alfabet menjadi integer agar dapat dihitung
5. Fungsi menghitung
6. Fungsi untuk mengkonversi dari integer menjadi alfabet
7. Fungsi main


Langkah 4 (Menuliskan Kode)
Nah, berdasarkan daftar fungsi diatas kita bisa maka sytax dari kode diatas adalah sebagai berikut:


/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pengamanajaringan;


/**
*
* @author blackhiden.blogspot.com
*/

public class Vigenere {
  private String Input; //Input teks
  private String Output; //Output teks
  private String Key; //Key dari enkripsi Vigenere
  private final int PanjangKamus = 51; //jumlah dari kamus
  //kamus yang dipergunakan A-Za-z
  private final String Kamus = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
     
  public Vigenere(){
  }

   public String getInput() {
       return Input;
   }

   public String getOutput() {
       return Output;
   }

   public String getKey() {
       return Key;
   }

   public void setInput(String Input) {
       this.Input = Input;
   }

   public void setOutput(String Output) {
       this.Output = Output;
   }

   public void setKey(String Key) {
       this.Key = Key;
   }
   
   
  
  
  
  //merubah char
  private int chartoInt(char inKey){
      int k = 0;
      for (int i = 0; i < Kamus.length(); i++) {
          if (inKey == Kamus.charAt(i)) {
              k = i;
              break;
          }
      }
      return k;
  }
  //Enkripsi
  public String VigenereEn(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') { //cek spasi agar struktur huruf tidak berubah
              Output += " ";  
          } else {
              if (k < Key.length()) {
              h = hitungVi(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungVi(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  public String VigenereDe(){
      int h;
      int k=0;
      for (int i = 0; i < Input.length(); i++) {
          if (Input.charAt(i) == ' ') {
              Output += " ";
          } else {
              if (k < Key.length()) {
              h = hitungViDe(chartoInt(Input.charAt(i)),chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          } else {
              k = 0;
              h = hitungViDe(chartoInt(Input.charAt(i)), chartoInt(Key.charAt(k)));
              Output += Kamus.charAt(h);
              k++;
          }
          }
      }
      return Output;
  }
  
  private int hitungVi(int p, int k){
      int o = (p + k) ;
      if (o > PanjangKamus) {
         o %= PanjangKamus;
          System.out.println(o);
      }
      return o;
  }
  
  private int hitungViDe(int p, int k){
      int o = (p - k);
      if (o < 0) {
          o += PanjangKamus;
      }
      return o;
  }
  
   
}


Langkah 5 (Tampilan dan I/O)
Untuk terakhir, anda bisa membuat interface untuk I/.O.


Semoga anda paham dan mengerti.

Selamat ber-coding ria.

Mencari Selisih Jumlah Hari Antara Dua Tanggal pada Bash Scripting

Beberapa waktu lalu lagi bikin projek yang melibatkan protokol HTTPS. Seperti yang kita tahu bahwa HTTPS merupakan protokol yang melindungi ...