Saturday, August 13, 2005

Mengenal protokol Hessian/Burlap

Hessian
  • Protokol binary yang sederhana (lightweight) untuk menghubungkan web services.
  • Menggunakan HTTP sebagai protokol transport
  • Karena sederhana/kecil hessian dapat digunakan pada J2ME
  • Spesifikasinya bersifat terbuka, dapat dilihat di http://www.caucho.com/resin-3.0/protocols/hessian-1.0-spec.xtp

  • Dikembangkan oleh Caucho Technology
  • Implementasi library java dari Caucho Tech. berlisensi Apache License

  • Implementasi Hessian server berupa servlet
  • Tidak memerlukan intermediate definition language (IDL) atau schema eksternal
  • Cukup menggunakan interface

  • Implementasi service untuk server hanya perlu meng-extend com.caucho.hessian.server.HessianServlet
  • Service pada server juga dapat berupa POJO yang kemudian menggunakan IoC
  • Contoh:
   import com.caucho.hessian.server.HessianServlet;

public class BasicService extends HessianServlet implements BasicAPI {
private String _greeting = "Hello, world";

public void setGreeting(String greeting) {
_greeting = greeting;
}

public String hello() {
return _greeting;
}
}
  • Sedangkan client hanya memerlukan com.caucho.hessian.client.HessianProxyFactory untuk memanggil service di server
  • Contoh:
   import com.caucho.hessian.client.HessianProxyFactory;
public class BasicClient {

public static void main(String[] args) {
// Setting jika menggunakan proxy
System.getProperties().put("proxySet", "true");
System.getProperties().put("http.proxyHost", "10.0.0.1");
System.getProperties().put("http.proxyPort", "8080");

String url = "http://www.caucho.com/hessian/test/basic";
HessianProxyFactory factory = new HessianProxyFactory();
BasicAPI basic = null;
try {
basic = (BasicAPI) factory.create(BasicAPI.class, url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
System.out.println("hello(): " + basic.hello());
}
}
  • Client dan server menggunakan interface yang sama yaitu:
   public interface BasicAPI {
public String hello();
}
Burlap

Friday, August 05, 2005

CAPTCHA

Saat ini, ketika kita mencoba registrasi ke suatu sistem dalam aplikasi web di internet, kita mendapatkan pertanyaan verifikasi seperti menjawab suatu tulisan pada suatu gambar yang sedikit dikaburkan tapi masih bisa terbaca, atau menjawab suatu operasi matematik sederhana.

Proses verifikasi seperti itu dilakukan untuk menghindari registrasi otomatis (screen scraping) yang dilakukan program komputer. Jadi sistem registrasi mencoba memverifikasi bahwa yang register adalah orang, bukan mesin.

Program untuk dapat membuat dan melakukan grade test sehingga banyak orang/manusia dapat melewati (pass) sedangkan program komputer saat ini tidak dapat melewatinya, bisa kita sebut sebagai CAPTCHA. (Kata "banyak" dan "saat ini" didefiniskan kemudian).

CAPTCHA singkatan dari "Completely Automated Public Turing Test to Tell Computers and Humans Apart". Public berarti kode program harus diberi komentar dan mudah untuk dimengerti, dan semua data yang digunakan pada sebuah CAPCHA haruslah bersifat publik. Turing test adalah test menebak sesuatu oleh manusia, dalam hal ini 'lawan'-nya adalah program komputer.

Metode untuk mendistorsi karakter pada gambar biasanya adalah:
  • tipe font
  • penambahan latar belakang (pattern, gradasi warna)
  • penambahan object lain yang sedikit menutupi karakter/huruf
  • perbedaan warna tiap-tiap huruf, atau border dari huruf
  • mengubah karakter dengan menggunakan algoritma distrosi misalnya
    - pembelokan garis sehingga karakter jadi meliuk-liuk (shadowgimpy)
    - memperesar bagian tertentu dengan kesan cermin cembung (FishEye)


LINKs:

CAPTCHA homepage
Salah satu implementasi Java - JCAPTCHA

Followers