Bagian 3 Bahasa Kompilasi, Virtual Machine, Berbasis XML Pemrograman Multimedia Bertalya Universitas Gunadarma 2006
Taxonomy Dari Format Content Kebutuhannya : Tipe media yang disupport: audio, video, teks, grafis & animasi susunan: spatial & temporal Interaksi: pasif, reaktif, proaktif, & reciprocal Kesulitan penggunaan (threshold) Kekuatan ekspresi (i.e., ceiling) Safety of Distribution Interoperability 2
Compiled Languages Biasanya digunakan untuk software sistem (cth, sistem operasi) & servis yg membutuhkan sumber daya: C, C++ Pro Pendekatan yang efisien Kekuatan dalam ekspresi (mendekati hardware) Con Interoperability (setiap servis harus dikompilasi ke device target) Keamanan dalam distribusi rendah (terdapat kode yg merusak) 3
Compiled Languages : System Software User Interface Software Tools (1995, Myers) mendefinisikan sebuah model bertingkat Aplikasi diimplementasikan menggunakan perangkat tingkat tinggi Toolkit: library of widget yg digunakan aplikasi Windowing System: menolong pemakai utk memonitor & mengontrol konteks yg berbeda (fungsionalitas input & output) 4
Toolkits menyediakan Compiled Languages : Toolkits Interaksi: utk menangani input pemakai Operasi kanvas: rendering area, kanvas, & primitif grafis Set of Widgets: elemen2 interface pemakai yg didefinisikan sebelumnya (cth, Button) Layout grafis: mengontrol lokasi widgets Contoh: QT, GTK Virtual Toolkit Toolkit yg tidak bergantung pada device Dipetakan ke Toolkit aktual pada device Contoh: AWT 5
Compiled Languages : Media Providers Audio/Video : Xine, MPlayer Televisi : linuxtv Game : SDL Bahasa lain : Contohnya libflash 3D graphics : OpenGL OpenGL ES Platform media : LIMMBO, MythTV 6
VM Languages VM (Virtual Machine) merupakan suatu abstraksi dari lingkungan yang terkomputerisasi JVM (Java Virtual Machine) + API (Application Programming Interface) Pro Platform mandiri Aman untuk didistribusikan Kekuatan dalam ekspresi (bahasa pemrograman) API terdokumentasi dg baik Con Pengaplikasiannya berat (karena konsep VM) Sulit digunakan (bahasa pemrograman) Kekuatan kurang dibandingkan compiled language 7
Edisi: VM Languages:Java Overview Java 2 Enterprise Edition (J2EE): utk server & komputer enterprise Java 2 Standard Edition (J2SE): utk server & PC Java 2 Micro Edition (J2ME): utk device yg disisipkan, PDA, mobile phone, & televisi digital Java Card: utk smart card Profil kebutuhan utk pasar device vertikal (kumpulan API) Konfigurasi platform min utk group device (VM + jantung API) 8
VM Languages:Multimedia Pengembangan interface user (AWT/Swing) Layout: Grid, North-South-East-West, Flow Set of Widgets: Button, TextArea Interaksi user: awt.ui.* (Mouse, Keyboard ) Video/Audio & Synchronization (JMF) Manager, Player, Data Source, & Controller 3D Graphics Java3D Java wrappers for OpenGL Device2 berbeda Television: MHP/OCAP/ACAP/ARIB -> GEM Handheld: MIDP 9
VM Languages : User Interface Development 10
VM Languages : JMF (1/2) 11
VM Languages : JMF (2/2) Unrealised: jika tidak mempunyai semua informasi utk memperoleh sbr daya yg dibutuhkan Realised: jika mempunyai semua informasi utk memperoleh sbr daya Prefetched: jika sudah mempunyai semua sbr daya yg dibutuhkan, & sudah mempunyai media data yg cukup prefetched utk segera dimainkan Started: jika media benar2 telah dimainkan 12
VM Languages : 3D Graphics Java3D API baru utk aplikasi 3D graphics stand-alone dapat menggunakan arsitektur apa saja (Direct-X, OpenGL...) mungkin bukan pendekatan yg efisien para pengembang harus mempelajari terlebih dahulu API baru Java wrappers of OpenGL Functionality from OpenGL Developers knows the API already Only wrappers: uses Java Native Interface (JNI) Much intercommunication between layers (Java -> C) API is not standardised yet (Java Specification Requests) JSR 231: OpenGL JSR 239: OpenGL ES 13
VM Languages : J2ME Defines two Configurations: CDC: High end consumer devices RAM Java Memory: around 2MB ROM Java Memory: around 2.5MB CLDC: Low end consumer devices Processor:16 bit/16 MHz or higher Java total memory: 160-512 KB CDC (Connected Device) Personal Profile Adds support for lightweight AWT Foundation Profile Basic application APIs (no GUI) CLDC (Connected Limited Device) Mobile Information Device Profile (MDIP) Application APIs + GUI APIs 14
XML Based Languages Merupakan bahasa pemrograman deklaratif (apa yang harus dikerjakan, bukan bagaimana). Kontributor utama adalah W3C. Pro Mudah dalam penggunaan (dapat menggunakan text editor) Interoperability (hanya butuh sebuah compatible browser) Keamanan dalam distribusi Con Kuat dalam ekspresi (sangat terbatas, bukan bahasa pemrograman!) Menggunakan skrip untuk logika aplikasi (atau tidak!) Membutuhkan browser 15
XML Based Languages : HTML & XHTML HTML HTML 4.01: (24 Dec. 1999) W3C Recommendation Lingua franca for publishing hypertext on the WWW. Non-proprietary Can be created by a wide range of tools: Text editors Authoring tools All kind of features (mixed together): UI components Fonts Lists XHTML XHTML 1.0 (26 Jan. 2000, revised 1Aug. 2002) W3C Recommendation XHTML 2.0: (22 July 2004) W3C Working Draft Reformulation of HTML 4 in XML Intention To only describe the structure of thedocument (CSS formatting) XHTML 1.0 XHTML 2.0 Well formed documents _ No backwards compatible Proper nesting Reduces scripting... Includes XForms and XML Events 16
XML Based Languages 17
XML Based Languages 18
XML Based Languages 19
XML Based Languages 20
XML Based Languages 21
XML Based Languages 22
XML Based Languages 23
XML Based Languages 24
XML Based Languages 25
XML Based Languages 26
XML Based Languages 27