Selasa, 03 Juli 2012

SOSE: Service-oriented Software Engineering


Konsep SOSE atau Service Oriented Software Engineering, secara kasar dapat dianggap sebagai "penggabungan" antara software sebagai services (layanan) dengan komputasi awam (atau cloud computing). 

Konsep ini pertama kali disebut oleh 
1) Stephen S. Yau is the director of Arizona State Univer- sity’s Information Assurance Center and a professor of computer science. His research interests include software engineering, cybersecurity, distributed computing systems, service-based computing, and cloud computing systems. Yau received a PhD in electrical engineering from the Uni- versity of Illinois at Urbana-Champaign. He is a Life Fellow of IEEE and a Fellow of the American Association for the Advancement of Science. Contact him at yau@asu.edu orhere .
2) Ho G. An is a PhD student in the School of Computing, Informatics and Decision System Engineering at Arizona State University. His research interests include services and cloud computing, security, and privacy. An received an MS in computer science from Arizona State University. Contact him at ho.an@asu.edu.



Seperti yang kita ketahui bersama, perkembangan service oriented architecture dan cloud computing menjadi sangat pesat belakangan ini, terlebih khusus dalam area industri dan akademisi, memicu berkembangnya aplikasi ber-skala besar yang ditujukan untuk pengembangan penelitian kolaboratif di berbagai bidang seperti: e-bisnis, kesehatan, aplikasi grid computing, infrastruktur komputasi perusahaan2, aplikasi2 untuk militer dan keamanan. Kedua paradigma software development tersebut diatas telah membuat lebih mudah dan lebih ekonomis untuk membuat segala sesuatu dari perangkat lunak komersial yang sederhana hingga sistem informasi yang kompleks, termasuk "killer application" yang bersifat mission-critical.

Pada hakikatnya kedua konsep paradigma pengembangan software memiliki "kemiripan" dalam hal oursourcing sumber daya dan transfer pengelolaan TI untuk layanan aplikasi, meskipun demikian terdapat perbedaan yang mencolok dalam hal "paradigma software engineering". Komputasi Service-Oriented berfokus pada desain arsitektur yang memungkinkan pengembangan aplikasi melalui penemuan layanan dan komposisi sedangkan cloud computing berfokus pada pengiriman efektif layanan kepada pengguna melalui virtualisasi sumber daya fleksibel dan scalable dan load balancing.

Konsep SOSE atau Service Oriented Software Engineering mencoba untuk "menggabungkan" keunggulan dan "mereduksi" perbedaan kedua paradigma tersebut. Melalui SOSE, dioptimalkan konsep arsitektur berorientasi layanan (SOA) yang memberikan gaya arsitektur, protokol standar, dan interface yang diperlukan untuk pengembangan aplikasi, dan Cloud Computing memberikan layanan yang diperlukan untuk pengguna melalui virtualisasi dan sumber daya penyatuan. Menggabungkan layanan dan komputasi awan dalam kerangka rekayasa perangkat lunak dapat membantu pengembang aplikasi dan penyedia layanan memenuhi tantangan individu paradigma masing-masing.


Meskipun SOSE secara konseptual menjanjikan, realisasinya akan memerlukan penelitian tambahan dalam rekayasa perangkat lunak untuk menghadapi tantangan, seperti keamanan dan kualitas-of-service (QoS) manajemen yang muncul dalam layanan atau komputasi awan.

Visi dari SOSE dapat dilihat pada Gambar berikut ini:



Keterangan selanjutnya dapat diperoleh di:
dan 

References dari Sumber Kutipan:

  1. Y. Chen and W.-T. Tsai, Service-Oriented Computing and Web Data Management: From Principles to Development, Kendall Hunt, 2010.
  2. K. Channabasavaiah, E. Tuggle, and K. Holley, “Migrat­ing to a Service-Oriented Architecture,” 16 Dec. 2003.
  3. S.S. Yau and H.G. An, “Confidentiality Protection in Cloud Computing Systems,” Int’l J. Software Informatics, vol. 4, no. 4, 2010, pp. 351-365.
  4. Y. Zhu et al., “Dynamic Audit Services for Outsourced Storage in Clouds,” to be published in IEEE Trans. Services Computing, 2011.
  5. L. Whitney, “Amazon EC2 Cloud Service Hit by Botnet, Outage,” CNET News, 11 Dec. 2009.
  6. Google Cloud Platform Used for Botnet Control,” Info Security, 10 Nov. 2009.
  7. C. Li, A. Raghunathan, and N. Jha, “Secure Virtual Machine Execution under an Untrusted Management OS,” Proc. IEEE 3rd Int’l Conf. Cloud Computing (CLOUD 10), IEEE CS Press, 2010, pp. 172-179.
  8. Cloud Security Alliance, “Top Threats to Cloud Computing V1.0,” Mar. 2010.
  9. S.S. Yau et al., “Automated Situation-Aware Service Composition in Service-Oriented Computing,” Int’l J. Web Services Research, vol. 4, no. 4, 2007, pp. 59-82.
  10. S.S. Yau et al., “Rapid Development of Adaptable Situation- Aware Service-Based Systems,” Web Services Research for Emerging Applications: Discoveries and Trends, L.-J. Zhang, ed., Information Science Reference, IGI Global, 2010, pp. 104-139.
  11. S.S. Yau et al., “Toward Development of Adaptive Service- Based Software Systems,” IEEE Trans. Services Computing, vol. 2, no. 3, 2009, pp. 247-260.
  12. B.T. Ward and J.C. Sipior, “The Internet Jurisdiction Risk of Cloud Computing,” Information Systems Management, vol. 27, no. 4, 2010, pp. 334-339.


Senin, 02 Juli 2012

Mekanisme Configured Tunneling


Tunneling menyediakan sebuah cara untuk memanfaatkan infrastruktur routing IPv4 yang telah ada untuk membawa traffic IPv6. Host dan router IPv6/IPv4 dapat mengirimkan datagram IPv6 melalui topologi routing IPv4 dengan mengenkapsulasi datagram IPv6 tersebut kedalam paket IPv4. Tunneling dapat digunakan dalam berbagai macam cara:
  • Router-to-Router: Router IPv6/IPv4 yang saling terhubung oleh sebuah infrastruktur IPv4 dapat menggunakan tunnel untuk melewatkan paket IPv6 diantara mereka. Dalam hal ini, tunnel merupakan satu segmen jaringan dari end-to-end jalur yang dilalui oleh paket IPv6.
  • Host-to-Router: Host IPv6/IPv4 dapat men-tunnel paket IPv6 ke sebuah intermediary router IPv6/IPv4 yang dapat dicapai melalui sebuah infrastruktur IPv4.
  • Host-to-Host: Host IPv6/IPv4 yang terhubung melalui sebuah infrastruktur IPv4 dapat men-tunnel paket IPv6 diantara keduanya.
  • Router-to-Host: Router IPv6/IPv4 dapat men-tunnel paket IPv4 ke tujuan host IPv6/IPv4. Tunnel ini berada pada segmen terakhir dari jalur.
Configured Tunneling dapat digunakan pada semua kondisi diatas tetapi kebanyakan digunakan pada Router-to-Router karena membutuhkan konfigurasi secara eksplisit terhadap tunneling endpoint.
Mekanisme yang menjadi pokok dari tunneling adalah
    • Bagian dimana paket IPv6 memasuki tunnel (entry node [encapsulator]) membuat sebuah header IPv4 yang mengenkapsulasi paket dan mengirimkannya.
    • Bagian ujung dari tunnel (exit node [decapsulator]) menerima paket yang terenkapsulasi tersebut kemudian menyusun kembali paket tersebut bila diperlukan, menghapus header IPv4, lalu memproses paket IPv6 yang diterima.
    • Encapsulator dapat mungkin perlu memelihara soft-state information dari setiap tunnel seperti parameter sebagai MTU tunnel untuk memproses paket IPv6 yang diteruskan kedalam tunnel.
Enkapsulasi
Enkapsulasi dari sebuah datagram IPv6 didalam IPv4 adalah sebagai berikut


Gambar Peng-engkapsulasi-an datagram IPv6 dalam IPv4 (Sumber: Nordmark et al, 2005)


Dekapsulasi
Saat sebuah host atau router IPv6/IPv4 menerima sebuah datagram IPv4 yang ditujukan ke alamat IPv4 node tersebut atau ke sebuah alamat multicast dan field Protocol pada paket tersebut bernilai 41 maka sangat mungkin itu merupakan sebuah tunnel packet dan perlu diverifikasi apakah termasuk pada salah satu dari tunnel yang telah dikonfigurasi dengan memeriksa alamat sumber/tujuan, menyusun kembali (reassembly) apabila terfragmentasi, dan menghapus header IPv4. Decapsulator harus memastikan keabsahan alamat sumber tunnel sebelum memproses paket lebih jauh untuk mengurangi masalah dengan address spoofing. Pengecekan ini juga berlaku terhadap paket yang diarahkan kepada protokol transport dari decapsulator. Paket dengan alamat IPv4 sumber yang tidak sesuai harus dibuang dan decapsulator menciptakan pesan kesalahan ICMP. Efek samping dari verifikasi alamat ini adalah node akan membuang secara diam-diam paket dengan alamat sumber yang salah serta paket yang diterima oleh node tetapi tidak ditujukan secara langsung kepadanya (contohnya paket ke alamat broadcast).
Decapsulator harus memiliki IPv6 MRU paling kurang 1500 byte pada tunnel interface dan MTU IPv6 terbesar pada interface IPv6. Decapsulator juga harus dapat menyusun kembali (reassembly) paket IPv4 yang sesudah disusun kembali, maksimum berukuran 1500 byte. Jumlah 1500 byte merupakan dihasilkan oleh encapsulator yang menggunakan skema MTU statis, sedangkan untuk encapsulator yang menggunakan skema MTU dinamis dapat menyebabkan ukuran paket melebihi MTU terbesar pada interface decapsulator. Batasan terhadap reassembly ini membuat penentuan MTU tunnel secara dinamis oleh encapsulator dapat memanfaatkan MTU jalur IPv4 yang lebih besar. Decapsulator menyusun ulang paket IPv4 sebelum melakukan dekapsulasi. Dekapsulasi ditunjukkan sebagai berikut


Gambar Pendekapsulasian IPv6 dari IPv4 (Sumber: Nordmark et al, 2005)

Setelah melakukan dekapsulasi, decapsulator harus menghapus paket dengan alamat IPv6 sumber yang tidak valid yakni:
  • Alamat multicast (FF00::/8)
  • Alamat loopback (::1)
  • IPv4-compatible IPv6 Address (::/96).
  • Seluruh IPv4-mapped IPv6 address (::ffff:0:0/96)
Secara logis, maka prosedur tunneling dapat menggunakan beberapa algoritma. Pada dasarnya teknik tunneling dapat digunakan untuk implementasi pada arsitektur jaringan yang memiliki IPv4 dan IPv6.

Jumat, 29 Juni 2012

Information Technology & Christian Scholars Paradigms

Remarks for discussions on IT and Christian Scholars Paradigm
1) de omnibus dubitandum; cor ad cor loquitor [1]
2) christian scholars framework for seeing


3) Relation of Science, Knowledge and Technology

  1. Keinginan untuk menyelidiki sesuatu
  2. Pengamatan Awal akan melahirkan gagasan (termasuk paradigma)
  3. Perencanaan suatu proses penelitian terpadu
  4. Hasil Penelitian dirangkum, diklasifikasikan (melalui proses analisis dan disain)
  5. Menemukan inter-relasi antara beberapa vektor
  6. Menerapkan/Memanfaatkan "penemuan" baru --> Inilah yang dimaksud dgn TEKNOLOGI
  7. Memberikan interpretasi, arti dan makna.

4) Methodology Contradictions:
Segala Sesuatu harus dapat dimengerti berdasarkan urutan peristiwa sebab-akibat dalam sistem tertutup
Contoh Kontradiksi Metodologis:
Hukum Termodinamika I, II dan III
1. Jumlah energi itu konstan (tidak berubah) [energi tidak diciptakan dan tidak dapat dimusnahkan]
2. Potensi alam serta isinya (cenderung) merosot [entropi]
3. Keadaan Lampau tidak terpulihkan

5) Christian Scholar Paradigm:
Segala Sesuatu dapat dimengerti berdasarkan urutan peristiwa sebab-akibat dalam sistem terbuka
Implementasi:
Entropi (penyusutan) adalah ungkapan lain dari upah dosa adalah maut dan kedagingan [2]
Harus ada ex-nihilo untuk "memulai" segala sesuatu (lihat Gambar dibawah)
Adanya sistem-terbuka dalam sejarah bumi (Misalnya peristiwa Kain da Habel [3], peristiwa Air Bah [4] , peristiwa Menara Babel [5], peristiwa kelahiran Yesus Kristus [6], peristiwa Guttenberg [7] dan akhirnya peristiwa "kemunculan" Web 2.0[8])

6) IT Spectrum

7) Conclusion

dapat digambarkan dengan [8]:

dengan S adalah "panjang" daur hidup manusia dalam garis waktu

Kutipan:
1. Ulangan 6:5
2. Roma 6:23
3. Kejadian 4:22
4. Kejadian 7
5. Kejadian 10-11
6. Lukas 2
7. Pengkotbah 1:9-10
8. Kitab Roma 8


Selasa, 26 Juni 2012

Implementasi IPv6 pada OS LINUX

Tentu saja, sistem operasi LINUX telah support IPv6. Sebut saja RedHat, PLD, SUse, Mandrake dan Debian. Kernel sebagai bagian inti OS Linux.

Kita dapat mengetik perintah dibawah ini untuk mengecek apakah Kernel kita sudah mendukung IPv6:
# test -f /prot/net/if_inet6 echo "IPv6 sudah siap"
atau kita dapat melihat apakah pada direktori/proc sudah terdapat file: 
/proc/net/if_inet6


Jika, melakukan kedua prosedur diatas, masih juga mengalami kegagalan,. maka kemungkinan yang ada adalah IPv6 masih berbentuk modul dan perlu dipanggil terlebih dahulu. Nah, pemanggilan modul IPv6 dapat dilakukan dengan cara: "modprobe ipv6". Apabila perintah tersebut sukses dieksekusi, maka modul IPv6 akan tampak di daftar modul kernel.


Untuk mengecek apakah modul IPv6 sudah terpanggil dapat dengan cara:
# modprobe ipv6
# 1smod | grep -w 'ipv6' && echo "IPv6 modul sukses"


Apabila tampil pernyataan "sukses" di monitor anda, ini berarti IPv6 sudah siap.


Untuk dapat meload kernel modul IPv6 secara otomatis dapat dilakukan dengan menambahkan konfigurasi di file /etc/modules.conf, berupa:
/etc/modules.conf
alias net-pf-10 ipv6 #automatically load IPv6 module on demand


Apabila prosedur-prosedur diatas masih belum berhasil, berarti dapat dipastikan bahwa kernel mesin OS anda masih belum mendukung IPv6. Ini berarti memerlukan kompilasi ulang kernel. Kompilasi ulang kernel dapat dilakukan dengan:
1. Mengunduh source kernel dari http://.kernel.org versi stable.
2. Extrak file kernel yang diunduh tersebut di direktori /usr/src dengan perintah:
# tar -jxvf Linux-2.4.18.tar.bz2 -C /usr/srt
3. Jalankan "make menuconfig" untuk memulai konfigurasi atas kernel.
4. Konfigurasi yang perlu diperhatikan untuk dapat mendukung IPv6 diantaranya adalah:

CONFIG_EXPERIMENTAL=y
CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_NETLINK_DEV=y
CONFIG_NETFILTER=y
CONFIG_NETFILTER_DEBUG=y
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_FWMARK=y
CONFIG_IP_ROUTE_NAT=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_IP_ROUTE_TOS=y
CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_IP_ROUTE_LARGE_TABLES=y
CONFIG_IP_PNP=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
CONFIG_IP_MROUTE=y
CONFIG_IP_PIMSM_V1=y
CONFIG_IP_PIMSM_V2=y
CONFIG_ARPD=y
CONFIG_INET_ECN=y
CONFIG_SYN_COOKIES=y
CONFIG_IPV6=y
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_LIMIT=m
CONFIG_IP6_NF_MATCH_MAC=m
CONFIG_IP6_NF_MATCH_MULTIPORT=m
CONFIG_IP6_NF_MATCH_OWNER=m
CONFIG_IP6_NF_MATCH_MARK=m
CONFIG_IP6_NF_FILTER=m
CONFIG_IP6_NF_TARGET_LOG=m
CONFIG_IP6_NF_MANGLE=m
CONFIG_IP6_NF_TARGET_MARK=m

5. Konfigurasi kernel yang lainnya disesuaikan dengan kondisi hardware dan kemampuan dari linux box tersebut.
6. Untuk memulai kompilasi jalankan perintah:
# make dep
#make bssImage atau # make install
#make modules modules_install
7. Re-start mesin Linux tersebut
8. Kemudian lakukan prosedur checking apakah kernel sudah mendukung IPv6, dengan menulis perintah:
# dmesg | grep IPv6

Apabila nampak keluaran seperti dibawah ini, berarti kernel sudah mendukung IPv6
IPv6 v.08 for NET4.0
IPv6 over IPv4 tunneling driver









Protokol Routing pada IPv6


Protokol Routing pada IPv6
Protokol routing yang digunakan pad a IPv6 terbagi atas external routing dan internal routing. Untuk external routing digunakan BGP4+ sedangkan OSPFv6 dan RIPng untuk internal routing.

1) BGP4+
Border Gateway Protokol adalah routing protokol yang memakai system autonomous. Fungsi utama dari BGP adalah untuk saling tukar-menukar informasi konektivitas jaringan antar BGP sistem. Informasi konektifitas ini antara lain adalah daftar dari Autonomous System (ASs). Informasi ini digunakan untuk membuat daftar routing sehingga terjadi suatu koneksi.
BGP4 mampu melakukan suatu advertaisement dan IP-prefix serta menghilangkan keterbatasan tentang network class. BGP memakai pola Hop-by-Hop yang artinya hanya meggunakan jalur yang berikutnya yang terdaftar dalam Autonomous System.
BGP menggunakan TCP sebagai media transport. BGP menggunakan port 179 untuk koneksi BGP. BGP mendukung CIDR.


Gambar Model BGP
BGP mampu mempelajari jalur internet malalui internal atau eksternal BGP dan dapat memilih jalur terbaik dan memasukkannya dalam ip forwarding.
BGP dapat digunakan pada dual maupun multi-homed, dengan syarat memiliki nilai AS. BGP tidak dapat digunakan pada single-homed.

Type dari BGP:
OPEN, tipe pesan yang diterima sewaktu koneksi antar BGP tersambungkan. 
UPDATE, tipe pesan yang dikirimkan untuk mengirimkan informasi routing antar BGP.
KEEPALIVE, tipe pesan yang dikirimkan untuk mengetahui apakah pasangan BGP masih hidup
NOTIFICATION, tipe pesan yang dikirimkan apabila terjadi error.

Atribut yang dimiliki oleh BGP:
AS_path, adalah jalur yang dilalui dan dicatat dalam data BGP route, dan dapat mendeteksi loop.
Next_Hop, adalah jalur berikutnya yang akan dilalui dalam routing BGP, biasanya adalah local network dalam eBGP. Selain itu bisa didapat dari iBGP.
Local Preference, penanda untuk AS BGP local
Multi-Exit Discriminator (MED), bersifat non-transitif digunakan apabila memiliki eBGP yang lebih dari 1.
Community, adalah sekumpulan BGP yang berada dalam satu AS.
Perbandingan BGP-4  antara yang digunakan untuk IPv4 dan IPv6 adalah kemampuan dari BGP yang dapat mengenali scope dari IPv6, yaitu global, site-local, link-local. Apabila IPv6 masih menggunakan IPv4 sebagai transport maka alamat peer pada BGP yang lainnya harus diikutkan pada konfigurasi.

2.) RIPng 
Routing Information Protocol Next Generation adalah protokol routing yang berdasarkan protokol routing RIP di IPv4 yang sudah mendukung IPv6. RIPng ini digunakan untuk internal routing protokol dan menggunakan protokol UDP sebagai transport. RIPng ini menggunakan port 521 sebagai komunikasi antar RIPng.

Metode yang dipakai RIPng adalah distance vector (vektor jarak), yaitu:
1. Jarak local network dihitung 0
2. Kemudian mencari neighbour sekitar dan dihitung jaraknya dan cost.
3. Dibandingkan jarak dan cost antar neighbour. 
4. Dilakukan perhitungan secara kontinue.
5. Menggunakan algoritma Ballman-Ford.

Command pada RIPng Header berisi:
1 Request, meminta daftar tabel routing pada RIPng yang lain
2 Response, membalas request dari RIPng yang lain dan memberikan daftar routing.

Protokol RIPng ini memiliki beberapa kelemahan
1. Hanya bisa sampai 15 HOP
2. Lambat dalam memproses routing, dikarena melakukan pengecekan terus menerus
3. Bersifat Classful

Perbedaan yang terjadi antara RIP pada IPv4 (RIPv2) dan IPv6 (RIPng)  adalah port UDP dimana pada IPv4 menggunakan port 520 sedangkan IPv6 menggunakan port 521 sebagai media transpor. RIPng hanya memiliki 2 perintah yaitu response dan request, berbeda dengan RIPv2 yang memiliki banyak perintah dan banyak yang tidak terpakai dan ada yang dibuang pada RIPng seperti authentifikasi. Perubahan yang terjadi dari RIPv2 ke RIPng antara lain, ukuran routing yang tidak lagi dibatasi, subnet IPv4 digantikan dengan prefix IPv6, next-hop dihilangkan tetapi kegunaannya tidak dihilangkan, authentifikasi dihilangkan, namun kemampuan yang hanya sampai 15 hop masih sama.

3) OSPFv3
Open Shortest Path First adalah routing protokol yang digunakan pada IPv6. OSPF ini berdasarkan atas Link-state dan bukan berdasarkan atas jarak. Setiap node dari OSPF mengumpulkan data state dan mengumpulkan pada Link State Packet. 
LSP dibroadcast pada setiap node untuk mencapai keseluruhan network. Setelah seluruh network memiliki “map” hasil dari informasi LSP dan dijadikan dasar link-state dari OSPF. Kemudian setiap OSPF akan melakukan pencarian dengan metode SPF (Shortest Path First) untuk menemukan jarak yang lebih efisien.
Routing table yang dihasilkan berdasarkan atas informasi LSP yang didapat sehingga OSPF memberikan informasi LSP secara flood, karena OSPF sudah memiliki kemampuan untuk memilih informasi LSP yang sama maka flood ini tidak mengakibat exhousted.

OSPF ini menggunakan protokol TCP bukan UDP, mendukung VLSM (Variable Length Subnet Mask).

OSPF menggunakan algoritma Shortest Path First (SPF) oleh Dijkstra, yaitu:
1. Diasumsikan sudah ada data table sebelumnya. Data yang diperlukan antara lain PATH (ID, path cost, arah forwarding ) TENTATIVE (ID, path cost, arah forwarding), Forwarding database.
2. Taruh local sebagai root dari tree dengna ID,0,0 pada PATH.
3. Temukan link N dan taruh di PATH. Hitung jarak Root-N dan N-M, apabila M belum terdapat di PATH atau TENTATIVE, apabila nilainya lebih baik taruh di TENTATIVE.
4. Apabila TENTATIVE bernilai kosong , batalkan. Lainnya, masukkan nilai TENTATIVE ke PATH.