Anda di halaman 1dari 11

Rekayasa perangkat lunak (RPL, atau dalam bahasa Inggris: Software

Engineering atau SE) adalah satu bidang profesi yang mendalami cara-cara
pengembangan perangkat lunak termasuk pembuatan, pemeliharaan, manajemen
organisasi pengembanganan perangkat lunak dan sebagainya.

Istilah software engineering, pertama kali digunakan pada akhir tahun 1950-an
dan sekitar awal 1960-an. Pada tahun 1968, NATO menyelenggarakan konferensi
tentang software engineering di Jerman dan kemudian dilanjutkan pada tahun 1969.
Meski penggunaan kata software engineering dalam konferensi tersebut menimbulkan
debat tajam tentang aspek engineering dari pengembangan perangkat lunak, banyak
pihak yang menganggap konferensi tersebutlah yang menjadi awal tumbuhnya profesi
rekayasa perangkat lunak

Kategori perangkat lunak.

 Arsitektur perangkat lunak


 Pemrograman komputer
 Pengembangan perangkat lunak
 Pengujian perangkat lunak
 Proyek perangkat lunak

Kategori Arsitektur perangkat lunak.

 Komputasi konkuren (1)


 Komputasi terdistribusi (3)

Kategori Komputansi konkuren dibagi 2 :

Kluster komputerCluster, dalam ilmu komputer dan jaringan komputer adalah


sekumpulan komputer (umumnya server jaringan) independen yang beroperasi dan
terlihat oleh klien jaringan seolah-olah komputer-komputer tersebut adalah satu buah
unit komputer. Proses menghubungkan beberapa komputer agar dapat bekerja seperti itu
dinamakan dengan Clustering.

Cluster didesain agar meningkatkan kemampuan sebuah server, yakni dengan


meningkatkan hal-hal berikut:

• Toleransi kesalahan (fault tolerance), yang dapat menyebabkan server lainnya


akan mengambil alih kerja server utama ketika server utama mengalami
kegagalan. Client tidak akan melihat pergantian peran ini. Dengan begitu,
downtime pun dapat dikurangi secara drastis.
• Penyerataan beban (load-balancing), yang dapat mendistribusikan beban server
ke semua server anggota cluster. Dengan begitu, kinerja dan skalabilitas server
pun menjadi relatif lebih baik.

Beberapa sistem yang mendukung cluster antara lain:

• Windows NT Server, Enterprise Edition, dengan sebuah layanan yang disebut


Microsoft Cluster Service (MSCS)
• Windows 2000 Advanced Server, dengan sebuah layanan yang disebut dengan
Microsoft Clustering Service
• Windows 2000 Datacenter Server
• Windows Server 2003 Enterprise Edition (x86/IA-64/x64), dengan sebuah
layanan yang disebut sebagai Microsoft Clustering Service
• Windows Server 2003 Datacenter Edition (x86/IA-64/x64)
• Solaris UNIX
• GNU/Linux

Karena menggunakan lebih dari satu buah server, maka manajemen dan perawatan
sebuah cluster jauh lebih rumit dibandingkan dengan manajemen server tunggal yang
memiliki skalabilitas tinggi (semacam IBM AS/400), meski lebih murah.

ThreadThread dalam ilmu komputer adalah singkatan dari "thread of execution",


didefinisikan sebagai sekumpulan instruksi yang dapat dieksekusi secara paralel dengan
thread lainnya, dengan menggunakan metode time slice (ketika satu prosesor melakukan
perpindahan antara satu thread ke thread lainnya) atau multiprocess (ketika thread-
thread tersebut dieksekusi oleh prosesor yang berbeda dalam satu sistem). Thread
sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses dengan
thread adalah sangat berbeda. Multiplethread dapat dieksekusi secara paralelel pada
sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan
time-division multipleks), dimana sebuah prosesor bekerja pada thread yang berbda,
dimana suatu kasus ditangani tidak sepenuhnya secara simultan, untuk prosesor singel
pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu waktu. Teknik
switching ini memungkinkan prosesor seolah-olah bekerja secara simultan.

 Komputasi terdistribusi terbagi menjadi 3 :

P2P merupakan singkatan dari Peer-to-Peer (bahasa Inggris) atau teknologi dari
“ujung” ke “ujung” pertama kali di luncurkan dan dipopulerkan oleh aplikasi-aplikasi
“berbagi-berkas” (file sharing) seperti Napster dan KaZaA. Pada konteks ini teknologi
P2P memungkinkan para pengguna untuk berbagi, mencari dan mengunduh berkas.

Sistem P2P yang sebenarnya adalah suatu sistem yang tidak hanya menghubungkan
“ujung” satu dengan lainnya, namun ujung-ujung ini saling berhubungan secara dinamis
dan berpartisipasi dalam mengarahkan lalulintas komunikasi informasi-, pemrosesan-,
dan penugasan pembagian bandwidht yang intensif, dimana bila sistem ini tidak ada,
tugas-tugas ini biasanya diemban oleh server pusat.
Aplikasi P2P yang sebenarnya memerlukan satuan tim-tim kecil dengan ide
cemerlang untuk mengembangkan perangkat lunak dan bisnis-bisnis yang mungkin
dilakukan oleh perangkat tersebut – dan mungkin saja bisa membuat perusahaan besar
yang sudah ada gulung tikar. P2P yang sebenarnya, bila diaplikasikan pada pasar yang
sudah matang dan stabil adalah teknologi yang "mengganggu".

Ide mengenai konsep ini muncul kira-kira pada akhir dekade 1980-an, ketika
jaringan komputer dan tentunya juga komputer telah mulai masuk ke dalam salah satu
barang wajib dalam perusahaan, baik itu perusahaan kecil maupun besar. Tetapi,
arsitektur ini berkembang dalam jaringan yang terlalu kecil untuk memiliki sebuah
server yang terdedikasi, sehingga setiap komputer klien pun menyediakan layanan untuk
berbagi data untuk melakukan kolaborasi antara pengguna.

Jaringan peer-to-peer pun mulai banyak digemari ketika Microsoft merilis sistem
operasi Windows for Workgroups, meski sebelumnya sistem operasi MS-DOS (atau
IBM PC-DOS) dengan perangkat MS-NET (atau PC-NET) juga dapat digunakan untuk
tujuan ini. Karakteristik kunci jaringan tersebut adalah dalam jaringan ini tidak terdapat
sebuah server pusat yang mengatur klien-klien, karena memang setiap komputer
bertindak sebagai server untuk komputer klien lainnya. Sistem keamanan yang
ditawarkan oleh metode ini terbilang lebih rendah dibandingkan dengan metode
klien/server dan manajemen terhadapnya pun menjadi relatif lebih rumit.

Konsep ini pun kemudian berevolusi pada beberapa tahun terakhir, khususnya
ketika jaringan Internet menjadi jaringan yang sangat besar. Hal ini mulai muncul kira-
kira pada akhir dekade 1990-an, di saat banyak pengguna Internet mengunduh banyak
berkas musik mp3 dengan menggunakan metode peer-to-peer dengan menggunakan
program Napster yang menuai kritik pedas dari industri musik, seperti halnya Metallica
dan banyak lainnya. Napster, pada saat dituntut oleh para pekerja industri musik,
dikatakan memiliki anggota lebih dari 20 juta pengguna di seluruh dunia. Selanjutnya
beberapa aplikasi juga dibuat dengan menggunakan konsep ini: eDonkey, Kazaa,
BitTorrent, dan masih banyak lainnya. Meski banyak aplikasi peer-to-peer ini digunakan
oleh pengguna rumahan, ternyata sistem ini juga diminati oleh banyak perusahaan juga.

[Berbagi data terdistribusi

Pengompres berkas adalah suatu perangkat lunak yang digunakan untuk


menyatukan beberapa berkas menjadi satu atau beberapa berkas arsip untuk
memudahkan pemindahan atau penyimpanan. Umumnya pengompres berkas
menggunakan teknologi loosless data compression untuk mengurangi ukuran arsip yang
berguna untuk memindahkan sejumlah besar berkas melewati jaringan yang memiliki
latensi tinggi seperti internet.
Daftar pengompres berkas

• 7zip
• WinAce
• WinZip
• WinRar
• ZipZag

Web service

Kategori ini memiliki 3 halaman, dari total 3.

Layanan webWeb Service Sepenuhnya berdasarkan standard web dan xml. Web
Service dapat membantu:

• Perantara pada integrasi platform sepanjang eksekusi mesin virtual.


• Integrasi antara Web dan OO middleware.
• Integrasi dari aliran kerja terisolasi dan sevice-service (Web Services Flow
Language - WSFL).
• Pertukaran data pada aplikasi yang berbeda-beda (X-Schema, XSLT ++)

• (Masa depan: standarisasi dari info konteks antara web servis dan klien –
integrasi servis horizontal).

• Pemain utama dan standard-standard

Microsoft: .NET SUN: Open Net Environment (ONE) IBM: Web Service Conceptual
Architecture (WSCA) W3C: Web Service Workshop Oracle: Web Service Broker
Hewlett-Packard: Web Service Platform

• Kemampuan aplikasi, fungsi atau operasi yang di ekspos untuk program lain
melalui standard yang terbuka, dan interoperable.

• “payloads” didefinisikan sebagai XML.

• “transports” melalui http atau Internet protocol terbuka lainnya.

• Data diakses dari berbagai bahasa pemrograman , platform hardware atau system
operasi.

• Middleware dari Internet.


Keuntungan penggunaan Web Service

• Format penggunaan terbuka untuk semua platform.


• Mudah di mengerti dan mudah men-debug.
• Dukungan interface yang stabil.
• Menggunakan standard-standard “membuka service sekali” dan mempunyai
pemakai banyak.
• Mudah untuk menengahi pesan-pesan proses dan menambahkan nilai.
• Routing and pengiriman.
• Security.
• management and monitoring.
• schema and service design.
• Akselerasi.
• mudah untuk mengembangkan dengan semantic transport tambahan.
• Terbuka, standard-standard berbasis teks.
• Pencapaian modular.
• Tidak mahal untuk diimplementasikan (relatif).
• Mengurangi biaya integrasi aplikasi enterprise.
• Implementasi yang incremental.

• XML memungkinkan pengembang software untuk meng-expose sumber daya


berharga pada bentuk yang memilki interoperabilitas tinggi, dimana sumber daya
ini adalah semua tipe aplikasi atau pnyimpanan data yang digunakan oleh antar
organisasi. Arsitektur XML Web services mendefinisikan mekanisme standard
untuk menyediakan sumber daya melalui pengiriman pesan XML. Untuk
mengakses sumber daya hanya dengan mentransmisikan pesan-pesan XML
melalui protokol standard seperti TCP, HTTP, atau SMTP. Kata “Web Service”
(singkatnya “service”) mengacu pada bagian kode yang mengimplementasikan
interface XML menjadi sumber daya, dimana bias jadi sulit diakses

• Arsitektur ini memungkinkan untuk konsumen dengan dukungan XML


terintegrasi dengan aplikasi Web Service. Bagaimanapun, untuk memenuhi ini,
konsumen harus menentukan antarmuka XML yang tepat sepanjang dengan
pesan pesan yang beraneka ragam dan mempunyai detail-detail yang tepat.
Skema XML dapat memnuhi kebutuhan ini karena mengizinkan pengembang
untuk menjabarkan struktur dari pesan-pesan XML. Skema XML sendiri,
bagaimanapun, tidak dapat menjabarkan detail-detail tambahan menyangkut
komunikasi dengan Web Service.
• Definisi skema memberitahu pesan-pesan XML apa yang dapat digunakan tapi
tidak bagaimana pesan-pesan tersebut berhubungan satu sama lain. Sebagai
contoh, jika ada elemen XML dinamai Add dan nama lain AddResponse, ini
sepertinya kedua nama tersebut berhubungan tapi tidak dapat mengindikasikan
skemanya. Oleh sebab itu, sebagai tambahan untuk mengetahui pesan-pesan,
konsumen harus juga mengetahui kemungkinan pertukaran pesan yang didukung
oleh Web Service (contoh:., jika anda mengirim pesan Add, anda mendapatkan
pesan kembali berupa AddResponse).

Pertukaran pesan dapat dimaksudkan sebagai pertukaran operasi. Operasi-operasi


yang dilakukan konsumen kebanyakan pada point penting menginteraksikan service
(Lihat gambar 2). Setiap kali menggunakan Web Service, akan dilakukan inspeksi daftar
operasi yang didukung untuk mendapatkan semua proses yang tersedia.

• Ini biasa untuk developer untuk mengelompokkan operasi-operasi terhubung


menjadi antarmuka-antarmuka. Konsumen harus mengetahui pengelompokkan
ini mempengaruhi cara mereka membuat kode. Ini sungguh penting untuk
developer-developer yang bekerja dengan Web Service pada lingkup berorientasi
objek karena antarmuka XML dapat memetakan menjadi antarmuka
programmatis (atau kelas-kelas abstract) pada pilihan bahasa yang dipilih.
• Konsumen juga harus mengetahui protocol komunikasi apa yang digunakan
untuk pengiriman pesan menuju service, sepanjang mekanisme spesifik yang
terlibat saat menggunakan protokol yang ditentukan seperti pada penggunaan
perintah, header-header, kode error. Pembungkusan (binding) menspesifikasikan
detail-detail konkrit atas apa yang terjadi pada kabel (wire) dengan mensketsakan
cara penggunaan antarmuka dengan protokol komunikasi khusus. Binding juga
mempengaruhi cara peasn-pesan abstract di enkodisasi pada wire dengan
menspesifikasikan style dari service (document vs. RPC) dan mekanisme
enkodisasi (literal vs. terenkodisasi).
• Service dapat mendukung binding-binding ganda pada antarmuka yang
ditentukan, tapi setiap binding harus dapta diakses pada alamat unik yang
diidentifikasikan oleh URI, juga ditujukan sebagai titik akhir dari Web Service
(lihat gambar 3).

• Konsumen harus mencari tahu semua detail-detail yang dijabarkan sebelum


mereka dapat berinteraksi menggunakan Web Service.

Sejarah

• Sebelum kita memasukki sejarah tentang Web Service, adabaiknya kita terlebih
dahulu mebahas masalah paradigma pekembangan bahasa pemrograman terlebih
dahulu.

Sejarah bahasa pemrograman adalah:

• Pemrograman terstruktur.
• Pemrograman berorientasi- objek.
• Komputasi terdistribusi.
• Pertukaran data elektronik.
• World Wide Web.
• Web services.
Ada pun perusahaan yang mengusulkan konsep web service adalah:

• Hewlett-Packard's e-Speak pada 1999 adalah penyedia e-service.


• Microsoft memperkenalkan nama "web services" pada Juni 2000.
• Microsoft “mempertaruhkan nama perusahaan" pada strategi web service ini.
• sekarang setiap vendor mulai menjadi “pemain”.

• Untuk lebih lanjut mengenai perkembangan sejarah Web service yang mana cikal
bakal terbentuknya dari arsitektur DCE, dapat dilihat pada gambar 4: Sejarah
terbentuknya Web Service.
• Dari gambar tersebut dapat dilihat bahwa XML Web Service mempunyai
interoperabilitas yang sangat tinggi karena pengembang Web service terdiri dari
banyak vendor.

] Mekanisme Kerja

Sebelum memasuki mekanisme kerja yang terjadi pada Web Service, akan dibahas
terlebih dahulu komponen-kompenen yang mempunyai peranan penting pada Web
Service, komponen-komponen tersebut dapat dilihat pada standard-standard web service
itu sendiri, dimana standard-standard web service adalah sebagai berikut: WSDL Web
Services Description Language http://www.w3.org/TR/wsdl Deskripsi-deskripsi dari
web service UDDI Universal Discovery, Description & Integration
http://www.uddi.org/specification.html Registry mengenai deskripsi servis SOAP Simple
Object Access Protocol http://www.w3.org/TR/SOAP/ Protokol transport untuk
berkomunikasi antar web service Standard-standard lain: WSRP, WSIA, WSXL…….

Selain standard-standard Web Service, juga ada Bagian-bagian Web Service (Web
Service Dumpstack) yang mendeskripsikan task-task yang akan terjadi pada proses
berjalannya web service, dimana task-task tersebut antara lain: Wire Protocols,
Description, Discovery. Untuk lebih lanjut mengenai bagian-bagian Web Service maka
dapat dilihat ilustrasinya pada gambar 5: Bagian-bagian Web Service .

Wire Protocols Aturan utama: menyediakan standard, channel komunikasi flexible


Aturan tambahan: menyediakan standard, representasi wire-level data yang flexible
Keuntungan: interoperabilitas pada level terendah

Deskripsi Aturan utama: menyediakan standard, jalan untuk menjabarkan apa dan
bagaimana web service melakukan yang harus dilakukan dengan fleksibel. Keuntungan:
interoperabilitas.

Discovery Aturan utama: menyediakan standard, jalur untuk menemukan dimana web
service di tempatkan dan bagaimana mencari informasi tambahan tentang apa yang
dilakukan web service dengan fleksibel Keuntungan: interoperabilitas, integrasi yang
dinamis

UDDI

Kemampuan atribut metadata untuk service-service didaftarkan pada UDDI, dan lalu
menjalankan quei-queri berdasarkan pada metadata tersebut yang menengahi secara
mutlak menuju tujuan dari UDDI pada kedua waktu desain dan waktu pengekskusian.

UDDI (Universal Description, Discovery, and Integration) mempunyai tugas sebagai


berikut: Deskripsi yang Programmatic dari bisnis dan sevice yang didukung Deskripsi
yang Programmatic dari spesifikasi web service Model pemrograman dan schema.
Tahap Pengembangan dan Implikasi Bisnis

TahapPengembangan.

• Sebelum melakukan pengembangan, harus diketahui dulu ruang lingkup


pengembangan aplikasi berbasiskan Web Service menurut media protokolnya,
adapun ruang lingkup aplikasi Web Service tersebut adalah”

Dalam korporasi firewall Untuk aplikasi enterprise terintegrasi ringan

• Antar korporasi firewall

Untuk digunakan pada layanan eksternal (contoh: passport) Untuuk menyediakan data
untuk partner-partner

• Melalui Web

Aplikasi komposit Komponen-komponen AliranKerja

Sedangkan tahap-tahap pengembangan Web Service itu sendiri adalah:

• Discover – browse registry UDDI untuk mencari Web Service yang sudah ada
untuk integrasi.
• Create or Transform –buat Web Service dari project-project yang ada.
• Build – satukan artifak yang ada sebagai SOAP dan service HTTP dan jabarkan
pada WSDL.
• Deploy – Aplikasikan menjadi server aplikasi Websphere atau Tomcat.
• Test – Uji coba web service baik local (stand alone computer) atau secara remote.
• Develop – Bangun contoh aplikasi untuk memberi masukkan dalam membuat
aplikasi klien Web service
• Publish – publikasikan / upload Web Service pada bisnis registri UDDI.
Kesimpulan

Dari Makalah ini dapat diambil kesimpulan sebagai berikut:

• Web service adalah teknologi dengan resiko rendah (relatif) yang dapat
digunakan untuk mengimplementasikan strategi bisnis beresiko tinggi.
• Web service berdasarkan middleware OO, XML dan konsep Internet Protokol,
dan membantu pergerakkan dari sistem-sistem heterogen menuju sistem yang
lebih homogen
• Banyak-vendor turut membuat standard
• Membuka semua jenis kesempatan untuk semua orang
• Incremental, non-intimidating, minimal technology play
• Kostumer memulai tanpa menunggu vendor-vendor
• Web service mentransformasikan web browser centris menjadi servis centris
• Tool-tool yang lebih baik bersifat open source

SOA (service oriented architecture, arsitektur berorientasi layanan) adalah suatu


gaya arsitektur sistem yang membuat dan menggunakan proses bisnis dalam bentuk
paket layanan sepanjang siklus hidupnya. SOA juga mendefinisikan dan menentukan
arsitektur teknologi informasi (TI) yang dapat menunjang berbagai aplikasi untuk saling
bertukar data dan berpartisipasi dalam proses bisnis. Fungsi-fungsi ini tidak terikat
dengan sistem operasi dan bahasa pemrograman yang mendasari aplikasi-aplikasi
tersebut.

SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda (layanan), yang dapat
didistribusikan melalui suatu jaringan dan dikombinasikan serta digunakan ulang untuk
membentuk aplikasi bisnis. Layanan-layanan ini saling berkomunikasi dengan
mempertukarkan data antar mereka atau dengan mengkoordinasikan aktivitas antara dua
atau lebih layanan. Konsep SOA sering dianggap didasari atau berkembang dari konsep-
konsep yang lebih lama dari komputasi terdistribusi dan pemrograman modular.

Pranala luar

• Open SOA
• SOA Practitioner's Guide
• Common XML Vocabularies
• Specific XML Vocabularies
• Info World SOA Executive Conference May 2007

WSDLWSDL (Web Services Description Language) adalah fromat XML yang


diterbitkan untuk menerangkan web service.
WSDL mendefinisikan:

• pesan-pesan (baik yang abstrak dan kongkrit) yang dikirim ke dan menuju web
service
• koleksi-koleksi digital dari pesan-pesan (port type, antarmuka)
• bagaimana port type yang ditentukan dijadikan wire protokol
• di mana servis ditempatkan

WSDL menyediakan sebuah kamus XML untuk menjabarkan detil-detil ini. WSDL
digunakan di mana skema XML tidak digunakan lagi dengan menyediakan jalur pesan-
pesan grup menjadi operasi-operasi dan operasi-operasi menjadi antarmuka. Ini juga
menyediakan jalur untuk medefinisikan binding-binding untuk setiap antamuka dan
kombinasi protokol sepanjang alamat titik akhir utnuk setiap kalinya. Definisi WSDL
yang lengkap terdiri dari seluruh informasi yang dibutuhkan untuk meminta web service.
Pengembang yang mau mempermudah yang lain untuk mengakses service-servicenya
harus menyediakan defisi-definisi WSDL.

WSDL memainkan peranan penting pada seluruh arsitektur web service semenjak
menjabarkan kontrak lengkap pada komunikasi aplikasi (sama seperti peran IDL pada
arsitektur DCOM). Walaupun teknik-teknik lain untuk menjabarkan Web service ada,
WS-I Basic Profile Versi 1.0 memadati penggunaan WSDL dan skema XML untuk
menjabarkan web service. Ini membantu untuk memastikan interoperbilitas pada layer
deskripsi servis.

Karena WSDL adalah mesin yang dapat dibaca (misalnya hanya file XML), tool-tool
dan infrastruktur dan dengan mudah dibuat seputar ini. Saat ini pengembang-pngembang
dapat definisi-definisi WSDL untuk membangun kode yang tahu dengan tepat
bagaimana berinteraksi dengan web service yang menjabrkan. Pembangunan code tipe
ini menyembunyikan detil-detil membosankan yang terlibat pada pengiriman dan
penrimaan pesan-pesan SOAP pada protokol-protokol yang berbeda-beda dan
menyebabkan web service dapat dicapai oleh massa. Microsoft® .NET Framework
menggunakan utilitas command-line bernama wsdl.exe yang mengenerasi kelas-kelas
dari definsi WSDL. Wsdl.exe dapat meng-generasi satu kelas untuk
menggunakanservice dan yang lainnya untuk mengimplementasikan service.(Apache
axis menggunkaan utilitas yang sama bernama WSDL2Java yang melakukan fungsi
yang sama pada kelas-kelas java.) Kelas-kelas digenerasi dari definisi WSDL sama
harus mampu berkomunikasi dengan yang lain sepanjang antarmuka WSDL yang
tersedia, tanpa memperhatikan bahasa pemrograman yang digunakan

WSDL 1.1 mempertimbangkan standar de facto saat ini karena dukungan industri yang
luas. Kebanyakan toolkit-toolkit web service mendukung WSDL 1.1, tapi ada sedikit
masalah interoperabilitas pada implementasi berbeda. Kebanyakan pembangun-
pembangun percaya bahwa fleksibilitas yang luas dari WSDL (dan kompleksitas hasil)
adalah sumber fundamental dari masalah ini. WS-I telah membantu memecahkan
beberapa dari masalah ini dengan memkasakan pengembang-pengembang untuk
menggunakan bagian-bagian tepat dari spesifikasi dan tidak menganjurkan mereka untuk
menggunakan yang lainnya.

W3C secara aktif bekerja pada versi WSDL “terdaftar” terakhir, WSDL 1.2, tapi saat ini
hanya working draft dan tidak didukung oleh toolkit-toolkit mainstream, jika ada.