Steps Involved in UPnP Networking

advertisement
BAB II
LANDASAN TEORI
a) Protokol Upnp
UPnP merupakan protokol yang muncul setelah dikembangkannya protokol PnP (Plug and
Play). UpnP mengembangkan fitur dasar yang terdapat pada PnP sehingga memungkinkan untuk
pencarian dan kontrol perangkat keras yang ada pada jaringan lokal kita, termasuk juga service seperti
printer yang terkoneksi dengan jaringan, Internet gateway dan barang elektronik lainnya.
UPnP memungkinnan perangkat keras untuk bergabung dengan jaringan, mendapatkan alamat
IP, mengabarkan kemampuan perangkat tersebut, dan memberikan presensi dan kemampuan dari
perangkat lain. Tiap perangkat keras dapat berkomunikasi dengan perangkat lain secara langsung
sehingga memungkinkan adanya jaringan peer to peer.
Implementasi dari protokol UpnP memungkinkan terwujudnya banyak skenario, seperti rumah
otomatis yang memungkian penggunanya untuk melakukan printing, audio/video playing, mengerjakan
pekerjaan dapur tanpa harus berpindah tempat.
UpnP menggunakan TCP/IP dan standar Internet protocol, sehingga memungkinkan integrasi
dengan jaringan yang telah ada. Penggunaan protokol standar ini memungkinkan UpnP untuk
digunakan pada banyak perangkat.
Karena UpnP merupakan protokol yang terdistribusi, menggunakan arsitektur jaringan terbuka,
ia independen dari sistem operasi tertentu atau media tertentu. UpnP tidak menyebutkan API yang
digunakan, sehingga memungkinkan pengembang untuk membuat API yang sesuai dengan kebutuhan
mereka sendiri.
// With the addition of Device Plug and Play (PnP) capabilities to the operating system it became a
great deal easier to setup, configure, and add peripherals to a PC. Universal Plug and Play (UPnP)
extends this simplicity to include the entire network, enabling discovery and control of devices,
including networked devices and services, such as network-attached printers, Internet gateways, and
consumer electronics equipment.
UPnP is more than just a simple extension of the Plug and Play peripheral model. It is designed to
support zero-configuration, "invisible" networking, and automatic discovery for a breadth of device
categories from a wide range of vendors.
With UPnP, a device can dynamically join a network, obtain an IP address, convey its capabilities, and
learn about the presence and capabilities of other devices—all automatically; truly enabling zero
configuration networks. Devices can subsequently communicate with each other directly; thereby
further enabling peer to peer networking.
The varieties of device types that can benefit from a UPnP enabled network are large and include
intelligent appliances, wireless devices, and PCs of all form factors.
The scope of UPnP is large enough to encompass many existing, as well as new and exciting scenarios
including home automation, printing and imaging, audio/video entertainment, kitchen appliances,
automobile networks, and proximity networks in public venues.
UPnP uses standard TCP/IP and Internet protocols, enabling it to seamlessly fit into existing networks.
Using these standardized protocols allows UPnP to benefit from a wealth of experience and knowledge,
and makes interoperability an inherent feature.
Because UPnP is a distributed, open network architecture, defined by the protocols used, it is
independent of any particular operating system, programming language, or physical medium (just like
the Internet). UPnP does not specify the APIs applications will use, allowing operating system vendors
to create the APIs that will meet their customer needs. //
Protokol Spesifik UpnP
TCP/IP
Protokol TCP/IP merupakan pondasi dari UpnP. Dengan menggunakan protokol TCP/IP standar, makan
UpnP dapat digunakan pada media fisik yang berbeda beda dan memastikan interoperabilitas pada
vendor yang berbeda beda.
Perangkat yang mendukung UpnP dapat menggunakan ?sebagian besar? protokol yang terdapat pada
TCP/IP termasuk TCP, UDP, IGMP, ARP dan IP serta servis TCP/IP seperti DHCP dan DNS. Karena
TCP/IP merupakan salah satu protokol jaringan yang ubiquitos, maka pembuatan implementasi atau
deteksi perangkat UpnP cukup mudah.
HTTP, HTTPU, HTTPMU
TCP/IP menyediakan pondasi untuk membangun jaringan antar perangkat UPnP. HTTP juga
merupakan inti utama dari UpnP. Seluruh aspek dari UpnP dibangun di atas HTTP atau variasinya.
HTTPU dan HTTPMU merupakan varian dari HTTP yang mempunyai fungsi untuk mengirimkan
pesan dan dibuat di atas UDP/IP. Protokol tersebut akan digunakan oleh SSDP. Format dari pesan yang
digunakan oleh protokol – protokol di atas sesuai dengan HTTP dan HTTP juga dibutuhkan saat
komunikasi multicast dan saat pengiriman pesan tidak membutuhkan overhead.
SSDP
SSD merupakan akronim dari Simple Service Discovery Protocol. Sesuai dengan namanya, protokol ini
mendefinisikan bagaimana cara pencarian sebuah perangkat yang terkoneksi pada jaringan. SSD
dibangun di atas HTTPU dan HTTPMU dan mengatur cara dari control point untuk mencari lokasi dan
properti dari perangkat yang tersedia pada jaringan. Dengan mendefinisikan metode pencarian dan
pengumuman ketersediaan pernagkat, SSDP menghilangkan overhead yang ada ketika hanya salah satu
mekanisme di atas yang diimplementasikan. Konsekuensinya, setiap control point pada jaringan
memiliki informasi lengkap mengenai kondisi jaringan namun traffic jaringan tetap terjaga.
Control points dan perangkat keras menggunakan SSDP. Sebuah UpnP control point, ketika mulai
menyala dapat mengirimkan perintah pencarian SSDP melalui HTTPMU untuk mencari perangkat dan
layanan yang tersedia pada jaringan. Control point dapat memodifikasi pencarian untuk mencari
perangkat dengan tipe tipe tertentu (misalkan VCR, atau TV) ataupun layanan tertentu (misalkan
perangkat yang dilengkapi dengan jam) atau bahkan perangkat dengan merk tertentu.
Perangkat UpnP memantau sinyal dari port multicast. Ketika sinyal pencarian didapatkan, perangkat
mengevaluasi kriteria pencarian untuk memasikan bahwa kriteria yang dimiliki cocok. Ketika
kecocokan ditemukan, unicast SSDP melalui HTTPU dikirimkan ke control point. Selain itu, ketika
sebuah perangkat bergabung dengan jaringan, ia akan mengirimkan sinyal kehadiran menggunakan
multiple SSDP untuk memberitahukan layanan yang dia dukung.
Sinya kehadiran dan respon unicast pesan dari perangkat mengandung petunjuk untuk lokasi dari
perangkat, dan mempunyai informasi mengenai ciri ciri dan layanan yang didukung oleh perangkat tsb
SSDP juga menyediakan cara agar perangkat dan layanannya untuk meninggalkan jaringan dengan
memberikan notifikasi dan timeout untuk deteksi keberadaan perangkat.
GENA
GENA (Generic Event Notification Architecture) menyediakan layanan untuk mengirimkan atau
menerima notifikasi menggunakan HTTP melalui TCP/IP dan multicast UDP. GENA juga mempunyai
konsep subscriber-publisher untuk notifikasi agar memungkinkan adanya events-based activities.
UpnP menggunakan GENA agar sinyal kehadiran dapat dikirimkan melalui SSDP dan memungkinkan
adanya perubahan sinyal saat ada event UpnP. Sebuah control point dapat menerima notifikasi layanan
saat dia berlangganan pada sebuah sumber notifikasi. Permintaan berlangganan dilakukan dengan
mengirimkan permintaan berlangganan yang berisi lokasi tujuan notifikasi, waktu berlanggaan dan
layanan yang diinginkan yang sesuai dengan notifikasi. Permintaan berlangganan harus dikirimkan
berkala agar informasi yang didapatkan selalu valid dan notifikasi bisa dikirimkan atau dibatalkan
menggunakan GENA.
SOAP
SOAP (Simple Object Access Protocol) menggunakan XML (Extensible Markup Language) dan HTTP
untuk menjalankan perintah prosedural secara remote. SOAP menjadi standar untuk komunikasi
berbasis RCP di Internet. Dengan menggunakan infrastruktur Internet yang telah tersedia, SOAP dapat
bekerja secara efektif dengan firewalls dan proxies. SOAP juga dapat dikombinasikan dengan SSL
(Secure Sockets Layer) untuk keamanan dan menggunakan fasilitas manajemen koneksi yang dimiliki
HTTP sehingga memungkinkan persebaran komunikasi di Internet semudah mengakses halaman web.
UpnP menggunakan SOAP untuk mengirimkan pesan kontrol kepada perangkat dan menerima sinyal
berhasil atau sukses ke control points.
Setiap permintaan kontrol dari UpnP merupakan pesan SOAP yang menganduk aksi yang akan
dijalankan sesuai dengan parameter yang ada. Respon yang diterima juga merupakan pesan SOAP yang
berisi status, nilai kembalian dan parameter kembalian.
XML
XML (Extensible Markup Language) adalah format universal untuk data terstruktur di Web. XML
memiliki kemiripan dengan HTML dalam penggunaan tag dan attribute. Perbedaan utamanya adalah
tag dan attribute dari XML tidak didefinisikan secara global, tapi diartikan sesuai dengan konteks dan
konten yang dikandungnya. Konsep ini membuat XML menjadi format yang bagus untuk
pengembangan skema untuk berbagai macam dokumen. UpnP menggunakan XML dalam pembuatan
deskripsi perangkat, layanan, pesan kontrol dan eventing.
UPnP Specific Protocols
TCP/IP
The TCP/IP networking protocol stack serves as the base on which the rest of the UPnP protocols are
built. By using the standard, prevalent TCP/IP protocol suite, UPnP leverages the protocol’s ability to
span different physical media and ensures multiple vendor interoperability.
UPnP devices can use many of the protocols in the TCP/IP stack including TCP, UDP, IGMP, ARP and
IP as well as TCP/IP services such as DHCP and DNS. How these protocols and services are used to
provide what is required for UPnP to work will become clear as we discuss the other protocols in this
section and discuss how UPnP works in subsequent sections.
Since TCP/IP is one of the most ubiquitous networking protocols, locating or creating an
implementation for a UPnP device that is tuned for footprint and/or performance is relatively easy.
A basic understanding of the TCP/IP protocol suite and services is assumed in this document. More
information on TCP/IP can be found in the references listed at the end of this document.
HTTP, HTTPU, HTTPMU
TCP/IP provides the base protocol stack to provide network connectivity between UPnP devices.
HTTP, which is hugely responsible for the success of the Internet, is also a core part of UPnP. All
aspects of UPnP build on top of HTTP or its variants.
HTTPU (and HTTPMU) are variants of HTTP defined to deliver messages on top of UDP/IP instead of
TCP/IP. These protocols are used by SSDP, described next. The basic message formats used by these
protocols adheres with that of HTTP and is required both for multicast communication and when
message delivery does not require the overhead associated with reliability.
Some of the explanations of higher-level protocols and the workings of UPnP assume a basic
knowledge of the HTTP protocol. More information on HTTP can be found through the references
listed at the end of this document.
SSDP
Simple Service Discovery Protocol (SSDP), as the name implies, defines how network services can be
discovered on the network. SSDP is built on HTTPU and HTTPMU and defines methods both for a
control point to locate resources of interest on the network, and for devices to announce their
availability on the network. By defining the use of both search requests and presence announcements,
SSDP eliminates the overhead that would be necessary if only one of these mechanisms is used. As a
result, every control point on the network has complete information on network state while keeping
network traffic low.
Both control points and devices use SSDP. A UPnP control point, upon booting up, can send an SSDP
search request (over HTTPMU), to discover devices and services that are available on the network. The
control point can refine the search to find only devices of a particular type(such as a VCR), particular
services (such as devices with clock services) or even a particular device.
UPnP devices listen to the multicast port. Upon receiving a search request, the device examines the
search criteria to determine if they match. If a match is found, a unicast SSDP (over HTTPU) response
is sent to the control point.
Similarly, a device, upon being plugged into the network, will send out multiple SSDP presence
announcements advertising the services it supports.
Both presence announcements and unicast device response messages contain a pointer to the location
of the device description document, which has information on the set of properties and services
supported by the device.
In addition to the discovery capabilities provided, SSDP also provides a way for a device and
associated service(s) to gracefully leave the network (bye-bye notification) and includes cache timeouts
to purge stale information for self healing.
GENA
Generic Event Notification Architecture (GENA) was defined to provide the ability to send and receive
notifications using HTTP over TCP/IP and multicast UDP. GENA also defines the concepts of
subscribers and publishers of notifications to enable events.
GENA formats are used in UPnP to create the presence announcements to be sent using Simple Service
Discovery Protocol (SSDP) and to provide the ability to signal changes in service state for UPnP
eventing. A control point interested in receiving event notifications will subscribe to an event source by
sending a request that includes the service of interest, a location to send the events to and a subscription
time for the event notification.
The subscription must be renewed periodically to continue to receive notifications, and can also be
canceled using GENA.
SOAP
Simple Object Access Protocol (SOAP) defines the use of Extensible Markup Language (XML) and
HTTP to execute remote procedure calls. It is becoming the standard for RPC based communication
over the Internet. By making use of the Internet’s existing infrastructure, it can work effectively with
firewalls and proxies. SOAP can also make use of Secure Sockets Layer (SSL) for security and use
HTTP’s connection management facilities, thereby making distributed communication over the Internet
as easy as accessing web pages.
Much like a remote procedure call, UPnP uses SOAP to deliver control messages to devices and return
results or errors back to control points.
Each UPnP control request is a SOAP message that contains the action to invoke along with a set of
parameters. The response is a soap message as well and contains the status, return value and any return
parameters.
XML
Extensible Markup Language (XML), to use the W3C definition, is the universal format for structured
data on the Web. Put another way, XML is a way to place nearly any kind of structured data into a text
file.
XML looks a lot like HTML in that it uses tags and attributes. Actually, it is quite different in that these
tags and attributes are not globally defined as to their meaning, but are interpreted within the context of
their use. These features of XML make it a good fit for developing schemas for various document
types. The use of XML as a schema language is defined by the W3C.
XML is a core part of UPnP used in device and service descriptions, control messages and eventing.
Langkah – Langkah yang diperlukan dalam UPnP
Pengalamatan
Dasar/fondasi dari jaringan UPnP adalah TCP/IP protokol. TCP/IP mempunyai elemen utama
addressing. Setiap perangkat harus mempunyai klien DHCP (Dynamic Host Configuration Protocol)
dan mencari server DHCP setiap terkoneksi ke jaringan. Jika ada server DHCP yang tersedia, perangkat
harus menggunakan alamat IP yang didapatkan dari server. Jika tidak ada DHCP server, maka
perangkat harus menggunakan auto IP untuk mendapatkan alamat IPnya.
Secara singkat, auto IP mendefinisikan bagaimana cara sebuah perangkat mendapatkan alamat IP dari
kumpulan alamat yang telah disiapkan sebelumnya dan dapat berpindah dengan mudah dari jaringan
terstruktur ke jaringan tidak terstuktur. Sebuah perangkat mungkin mengimplementasikan protokol
selain UPnP yang menggunakan nama panggilan untuk perangkat tsb. Dalam kasus ini, harus dilakukan
perubahan nama panggilan perangkat menjadi alamat IP perangkat tersebut. DNS (Domain Name
Services biasanya digunakan pada kasus seperti ini. Perangkat yang membutuhkan fungsi pemetaan
dari nama panggilan ke alamat IP biasanya menyediakan klien DNS dan mendukung registrasi DNS
dinamis untuk pemetaan alamat.
Pencarian/Penemuan ?/
Ketika perangkat telah tergabung ke dalam jaringan dan mendapatkan alamat yang sesuai, maka
penemuan perangkat menjadi memungkinkan. Penemuan diatur oleh SSDP seperti yang dibahas
sebelumnya. Ketika perangkat ditambahkan ke dalam jaringan, SSDP memungkinkan perangkat tsb
untuk memberitahukan layanan yang didukungnya kepada control points jaringan, Ketika sebuah
control point ditambahkan ke dalam jaringan, SSDP memungkinkan control point tersebut untuk
mencari perangkat dengan kriteria yang diinginkan dalam jaringan. Pertukaran informasi yang paling
fundamental adalah dengan pengiriman pesan penemuan yang berisi spesifikasi inti mengenai
perangkat atau layanan yang didukungnya
Dekripsi
Langkah selanjutnya dalam pembuatan jaringan UPnP adalah deskripsi. Setelah control poin
menemukan sebuah perangkat, control point tersebut belum mengetahui detail informasi dari perangkat
yang ada. Control point harus mendapatkan informasi lebih detail mengenai perangkat dan layanan
yang didiukungnya agar bisa berinteraksi secara lebih efektif. Untuk mendapatkan informasi ini,
Control point harus mendapatkan deskripsi perangkat melalui URL yang disediakan oleh perangkat di
pesan penemuan. Perangkat mungkin mempunyai perangkat dan layanan logika. Deskripsi UPnP untuk
sebuah perangkat tersimpan dalam sebuah berkas XML dan termasuk juga di dalamnya informasi
spesifik dari vendor dan pembuat perangkat meliputi nama, nomor, nomor serial, alamat URL vendor,
dan lain lain. Deskripsi juga berisi kumpulan perangkat dan layanan lain yang tertanam di dalam
perangkat tersebut. Selain itu terdapat juga URL untuk kontrol, eventing dan presentasi perangkat.
Kontrol
Setelah Control point mendapatkan deskripsi perangkat, maka control point tersebut mempunyai
kemampuan untuk melakukan kontrol terhadap perangkat. Untuk mengetahui datail layanan yang
ditawarkan perangkat, control point harus mendapatkan deskripsi UPnP layanan secara mendetail.
Deskripsi dari layanan juga dinyatakan dalam berkas XML dan berisi daftar perintah atau aksi berserta
parameternya yang bisa diterima dan dijalankan oleh layanan. Deksripsi tersebut juga berisi daftar
variabel yang digunakan oleh layanan beserta deksripsi data, kapasitas dan karakteristik variabel.
Untuk mengontrol perangkat, control point mengirimkan permintaan aksi kepada sebuah layanan dari
perangkat. Untuk melakukan hal ini, control point mrngirimkan permintaan aksi ke URL kontrol dari
layanan (yang tersedia di deskripsi perangkat). Pesan kontrol dinyatakan dalam berkas XML
menggunakan SOAP. Layanan kemudian akan merespon pesan tersebut dengan mengirimkan kode
sukses atau gagal.
Eventing
Deskripsi UPnP untuk layanan salah satunya berisi daftar aksi yang didukung oleh layanan dan variabel
yang dibutuhkan layanan saat berjalan. Layanan akan mengirimkan update ketika terjadi perubahan
variabel dan control point dapat berlangganan untuk menerima informasi tersebut.
Layanan mengirimkan update melalui pesan event. Pesan event mengandung nama dan kondisi dari
variabel. Pesan ini dinyatakan dalam berkas XML dan diformat menggunakan GENA.
Ketika control point berlangganan untuk pertama kali, pesan even spesial dikirimkan. Pesan spesial ini
berisi nama dan nilai dari seluruh variabel event dan memungkinkan pelanggan untuk menginisialisasi
model dan kondisi layanan.
Untuk mendukung multiple control points, setiap pelanggan harus mengirimkan semua pesan event,
pelanggan menerima semua pesan event untuk semua variabel event dan setiap pesan even harus
dikirim tanpa memperdulikan penyebab perubahan variabel.
Presentasi
Apabila sebuah perangkat memiliki URL untuk presentasi, maka control point dapat mengambil
halaman dari URL tersebut kemudian mengirimkan halaman tersebut ke browser dan memungkinkan
pengguna untuk mengontrol perangkat atau melihat status perangkat. Tingkat kontrol tergantung dari
kemampuan halaman presentasi dan perangkat
Steps Involved in UPnP Networking
Addressing
The foundation for UPnP networking is the TCP/IP protocol suite and the key to this suite is
addressing. Each device must have a Dynamic Host Configuration Protocol (DHCP) client and search
for a DHCP server when the device is first connected to the network. If a DHCP server is available, the
device must use the IP address assigned to it. If no DHCP server is available, the device must use Auto
IP to get an address.
In brief, Auto IP defines how a device intelligently chooses an IP address from a set of reserved private
addresses, and is able to move easily between managed and unmanaged networks.
A device may implement higher layer protocols outside of UPnP that use friendly names for devices. In
these cases, it becomes necessary to resolve friendly host (device) names to IP address. Domain Name
Services (DNS) are usually used for this. A device that requires or uses this functionality may include a
DNS client and may support dynamic DNS registration for its own name to address mapping.
Discovery
Once devices are attached to the network and addressed appropriately, discovery can take place.
Discovery is handled by the SSDP as discussed earlier. When a device is added to the network, SSDP
allows that device to advertise its services to control points on the network. When a control point is
added to the network, SSDP allows that control point to search for devices of interest on the network.
The fundamental exchange in both cases is a discovery message containing a few, essential specifics
about the device or one of its services, for example its type, identifier, and a pointer to its XML device
description document.
Description
The next step in UPnP networking is description. After a control point has discovered a device, the
control point still knows very little about the device. For the control point to learn more about the
device and its capabilities, or to interact with the device, the control point must retrieve the device's
description from the URL provided by the device in the discovery message.
Devices may contain other, logical devices and services. The UPnP description for a device is
expressed in XML and includes vendor-specific, manufacturer information including the model name
and number, serial number, manufacturer name, URLs to vendor-specific Web sites, and so forth. The
description also includes a list of any embedded devices or services, as well as URLs for control,
eventing, and presentation.
Control
After a control point has retrieved a description of the device, the control point has the essentials for
device control. To learn more about the service, a control point must retrieve a detailed UPnP
description for each service. The description for a service is also expressed in XML and includes a list
of the commands, or actions, the service responds to, and parameters or arguments, for each action. The
description for a service also includes a list of variables; these variables model the state of the service at
run time, and are described in terms of their data type, range, and event characteristics.
To control a device, a control point sends an action request to a device's service. To do this, a control
point sends a suitable control message to the control URL for the service (provided in the device
description). Control messages are also expressed in XML using SOAP.
In response to the control message, the service returns action specific values or fault codes.
Eventing
A UPnP description for a service includes a list of actions the service responds to and a list of variables
that model the state of the service at run time. The service publishes updates when these variables
change, and a control point may subscribe to receive this information.
The service publishes updates by sending event messages. Event messages contain the names of one of
more state variables and the current value of those variables. These messages are also expressed in
XML and formatted using GENA.
A special initial event message is sent when a control point first subscribes; this event message contains
the names and values for all evented variables and allows the subscriber to initialize its model of the
state of the service.
To support multiple control points, all subscribers are sent all event messages, subscribers receive event
messages for all evented variables, and event messages are sent no matter why the state variable
changed (in response to an action request or due to a state change).
Presentation
If a device has a URL for presentation, then the control point can retrieve a page from this URL, load
the page into a browser, and depending on the capabilities of the page, allow a user to control the
device and/or view device status. The degree to which each of these can be accomplished depends on
the specific capabilities of the presentation page and device.
[microsoft's white paper about upnp protocol]
b) Sistem Operasi Android
Android
Android adalah sebuah perangkat lunak untuk perangkat mobile yang berisi sistem operasi, aplikasi
utama dan beberapa aplikasi pendukung. Android dikembangkan berdasarkan kernel Linux 2.6 yang
mempunyai fungsi inti seperti keamanan, manajemen memori, manajemen proses, jaringan dll. Kernel
tersebut juga berfungsi sebagai layer abstrak di antara perangkat keras dan perangkat lunak.
Komponen utama dari Android adalah sebagai berikut :
Aplikasi
Android berisi aplikasi utama termasuk email klien, program SMS, kalender, peta, peramban, kontak
dan lain lain. Seluruh aplikasi utama ditulis menggunakan bahasa pemrograman Java.
Kerangka Aplikasi
Dengan penyediaan platform terbuka, Android menawarkan pengembang kemampuan untuk
membangun aplikasi yang inovatif. Pengembang dapat mengakses kemampuan perangkat keras, lokasi,
layanan di balik layar, alarm, notifikasi dan hal hal lainnya. Pengembang mempunyai API yang sama
dengan API yang digunakan oleh aplikasi inti.
Di dalam setiap aplikasi terdapat kumpulan layanan dan sistem yang meliputi :
View = bagian dari aplikasi yang berfungsi sebagai tampilan yang meliputi grid, list, text box, dan
peramban web.
Penyedia Konten (Content Providers) = memungkinkan aplikasi untuk mengakses data dari aplikasi
lain atau membagi data dari dalam aplikasi tsb
Manajer Berkas (Resource Manager) = memberikan akses kepada berkas di luar kode program seperti
grafik, berkas tampilan, dll.
Manajer Notifikasi = memungkinkan aplikasi untuk menampilkan peringatan atau poesan khusus di
status bar.
Manajer aktivitas = memanajemen siklus aplikasi dan memungkinkan backstack navigasi
Libraries
Android mempunyai kumpulan C/C++ libraries yang digunakan dalam berbagai komponen sistem.
Beberapa library yang digunakan adalah sebagai berikut
System C library – sebuah implementasi yang diturunkan dari BSD berrisi standar system C library
untuk Linux yang biasa digunakan dalam perangkat embedded.
Media Libraries – berdasarkan OpenCORE dari PacketVideo, library ini mendukung rekaman dan bisa
memainkan audio, video dan image format yang umum beredar meliputi MPED4, H.264, MP3, AAC,
AMR, JPG dan PNG
Manajer Layar – memanajemen akses untuk menampilkan subsistem dan 2D / 3D layer gambar dari
banyak aplikasi yang berbeda
LibWebCore – Peramban web yang diguanakan secara default oleh Android
SGL – mesin grafik 2D
3D libraries – implementasi berdasarkan OpenGL
FreeType – Lirary yang digunakan untuk menampilkan bitmap dan vector font
SQLite – Database yang bisa diakses oleh banyak aplikasi.
Android Runtime
Setiap aplikasi android berjalan di prosesnya masing masing dengan setiap instance dari Dalvik virtual
machine. Dalvik telah dibuat sedemikian rupa sehingga dapat menjalankan banyak Virtual Machine
secara efisien. Dalvik VM tergantung pada kernel linux, terutama pada low level memory manajemen
dan threading.
android overview
Android relies on Linux version 2.6 for core system services such as security, memory management,
process management, network stack, and driver model. The kernel also acts as an abstraction layer
between the hardware and the rest of the software stack.
What is Android?
Android is a software stack for mobile devices that includes an operating system, middleware and key
applications. The Android SDK provides the tools and APIs necessary to begin developing applications
on the Android platform using the Java programming language.
Features
Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES
1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR,
JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Rich development environment including a device emulator, tools for debugging, memory and
performance profiling, and a plugin for the Eclipse IDE
Android Architecture
The following diagram shows the major components of the Android operating system. Each section is
described in more detail below.
Applications
Android will ship with a set of core applications including an email client, SMS program, calendar,
maps, browser, contacts, and others. All applications are written using the Java programming language.
Application Framework
By providing an open development platform, Android offers developers the ability to build extremely
rich and innovative applications. Developers are free to take advantage of the device hardware, access
location information, run background services, set alarms, add notifications to the status bar, and much,
much more.
Developers have full access to the same framework APIs used by the core applications. The application
architecture is designed to simplify the reuse of components; any application can publish its capabilities
and any other application may then make use of those capabilities (subject to security constraints
enforced by the framework). This same mechanism allows components to be replaced by the user.
Underlying all applications is a set of services and systems, including:
A rich and extensible set of Views that can be used to build an application, including lists, grids, text
boxes, buttons, and even an embeddable web browser
Content Providers that enable applications to access data from other applications (such as Contacts), or
to share their own data
A Resource Manager, providing access to non-code resources such as localized strings, graphics, and
layout files
A Notification Manager that enables all applications to display custom alerts in the status bar
An Activity Manager that manages the lifecycle of applications and provides a common navigation
backstack
For more details and a walkthrough of an application, see the Notepad Tutorial.
Libraries
Android includes a set of C/C++ libraries used by various components of the Android system. These
capabilities are exposed to developers through the Android application framework. Some of the core
libraries are listed below:
System C library - a BSD-derived implementation of the standard C system library (libc), tuned for
embedded Linux-based devices
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of
many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3,
AAC, AMR, JPG, and PNG
Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D
graphic layers from multiple applications
LibWebCore - a modern web browser engine which powers both the Android browser and an
embeddable web view
SGL - the underlying 2D graphics engine
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D
acceleration (where available) or the included, highly optimized 3D software rasterizer
FreeType - bitmap and vector font rendering
SQLite - a powerful and lightweight relational database engine available to all applications
Android Runtime
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine.
Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes
files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM
is register-based, and runs classes compiled by a Java language compiler that have been transformed
into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level
memory management.
Linux Kernel
Android relies on Linux version 2.6 for core system services such as security, memory management,
process management, network stack, and driver model. The kernel also acts as an abstraction layer
between the hardware and the rest of the software stack.
[ http://developer.android.com/guide/basics/what-is-android.html ]
[http://onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-sdk.html ]
android technical aspect
[ http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/A-developers-perspective-onGoogles-Android-SDK/ ]
platform distribution & history
[http://developer.android.com/resources/dashboard/platform-versions.html ]
c) Streaming dan manipulasi video
Streaming merupakan sebuah cara menampilkan multimedia kepada pengguna dengan menggunakan
streaming provider. Dengan streaming, klien dapat menampilkan data sebelum keseluruhan berkas
diterima. Nama streaming menggambarkan metode pengiriman melalui medium, bukan
menggambarkan medium itu sendiri. Pembedanya biasanya ada pada media yang terdistribusi melalui
jaringan telekomunikasi, seperti kebanyakan sistem pengiriman yang menggunakan streaming ( radio,
televisi ) atau yang bersifat bukan streaming ( buku, kaset, audio CD ).
Pembuatan protokol jaringan untuk mendukung media streaming membutuhkan banyak perhatian, di
antaranya :
Protokol Datagram, seperti User Datagram Protocol, mengirimkan media stream sebagai kumpulan
paket paket kecil. Ini simpel dan efisiean, namun tidak ada mekanisme dalam protokol yang menjamin
pengiriman. Kesalahan data hanya bisa dideteksi oleh klien dan apabila memungkinkan dilakukan
koreksi kesalahan dengan cara meminta ulang data yang hilang.
RTSP (Real Time Streaming Protocol) , RTP (Real-time Transport Protocol) dan RTCP (Real-time
Transport Protocol) merupakan protokol spesial yang dibuat agar streaming menjadi mudah dilakukan
pada jaringan. RTSP bisa diterapkan pada banyak protokol, sementara yang lain hanya bisa berjalan
pada UDP.
Pendekatan lain yang juga menggunakan protokol web standar adalah HTTP adaptive bitrate streaming.
HTTP adaptive bitrate streaming siimplementasikan berdasarkan HTTP progressive download, namun
dilakukan dengan melakukan download pada berkas berukuran kecil, mirip RTSP dan RTP
Protokol yang lebih reliabel seperti TCP (Transmission Control Protocol) menjamin pengiriman berkas
dalam media streaming. Namun hal ini dicapai dengan menggunakan mekanisme kirim ulang dan
timeout shingga menyebabkan sistem menjadi lebih kompleks. Hal ini juga berakibat lambatnya media
streaming ketika data loss terjadi pada jaringan disebabkan pengecekan dan pengiriman ulang data.
Klien dapat meminimalisis efek ini dengan menyimpan data terlebih dahulu sebelum ditampilkan.
Waktu tunggu untuk melakukan buffering video biasanya tidak terlalu mengganggu apabila diterapkan
pada layanan video per- permintaan. Akan tetapi untuk video chat atau video conference, hal ini akan
mengganggu konsistensi streaming, terutama ketika waktu tunggu melebih 200ms.
Protokol unicast mengirim kopian terpisah dari media stream dari server kepada setiap penerima.
Unicast adalah norma untuk sebagian besar koneksi internet, tapi tidak akan mengubah skalanya ketika
banyak pengguna ingin melihat program televisi yang sama.
Multicasting menyiarkan kopi dari sebuah multimedia kepada seluruh klien pada jaringan. Protokol
multicast dikembangkan untuk mengurangi duplikasi data dan mengurangi beban yang diterima
jaringan yang muncul ketika banyak penerima mendapatkan konten streaming secara unicast dan
independen. Protokol ini mengirimkan stream individu dari banyak penerima. Kemungkinan
implementasi darit transmisi multicast tergantung dari infrastruktur dan tipe jaringan yang ada. Salah
satu kerugian dari multicast adalah tidak memungkinkannya implementasi video per-permintaan.
Streaming setara kontinyu biasanya tidak memungkinkan penerima untuk mengatur playback dari
media.. Namun, masalah ini bisa diatasi dengan penggunaan cache di service, set top box digital dan
media player yang bisa menyimpan data (buffer).
IP multicast menyediakan cara untuk mengirimkan media stream individu kepada kumpulan penerima
di sebuah jaringan komputer. Protokol multicast, biasanya Internet Group Management Protocol
digunakan untuk mengatur pengiriman stream multicast kepada grup penerima di LAN. Salah satu
tantangan dalam implementasi IP multicast adalah bahwa routers dan firewalls antar LAN harus
membolehkan packet yang dikirimkan sampai ke grup multicast. Jika organisasi yang
bertanggungjawab atas konten mempunyai kontrol terhadap jaringan antara server dan penerima, maka
protokol seperti Protocol Independent Multicast dappt digunakan untuk mengirimkan konten streaming
ke banyak LAN.
Protokol peer-to-peer mengatur pengiriman stream antar komputer. Hal ini dilakukan untuk mencegak
terjadinya bottlenect antara server dan koneksi jaringan. Namun ini memiliki berbagai hal yang harus
diperhatikan seperti aspek teknis, performa, kualitas dan bisnis.
Streaming media is multimedia that is constantly received by and presented to an end-user while being
delivered by a streaming provider. With streaming, the client browser or plug-in can start displaying the
data before the entire file has been transmitted.[note 1] The name refers to the delivery method of the
medium rather than to the medium itself. The distinction is usually applied to media that are distributed
over telecommunications networks, as most other delivery systems are either inherently streaming (e.g.,
radio, television) or inherently nonstreaming (e.g., books, video cassettes, audio CDs). The verb "to
stream" is also derived from this term, meaning to deliver media in this manner. Internet television is a
commonly streamed medium. Streaming media can be something else other than video and audio. Live
closed captioning and stock tickers are considered streaming text, as is Real-Time Text.
Live streaming, delivering live over the Internet, involves a camera for the media, an encoder to
digitize the content, a media publisher, and a content delivery network to distribute and deliver the
content.
Designing a network protocol to support streaming media raises many issues, such as:
Datagram protocols, such as the User Datagram Protocol (UDP), send the media stream as a series of
small packets. This is simple and efficient; however, there is no mechanism within the protocol to
guarantee delivery. It is up to the receiving application to detect loss or corruption and recover data
using error correction techniques. If data is lost, the stream may suffer a dropout.
The Real-time Streaming Protocol (RTSP), Real-time Transport Protocol (RTP) and the Real-time
Transport Control Protocol (RTCP) were specifically designed to stream media over networks. RTSP
runs over a variety of transport protocols, while the latter two are built on top of UDP.
Another approach that seems to incorporate both the advantages of using a standard web protocol and
the ability to be used for streaming even live content is the HTTP adaptive bitrate streaming. HTTP
adaptive bitrate streaming is based on HTTP progressive download, but contrary to the previous
approach, here the files are very small, so that they can be compared to the streaming of packets, much
like the case of using RTSP and RTP.[5]
Reliable protocols, such as the Transmission Control Protocol (TCP), guarantee correct delivery of
each bit in the media stream. However, they accomplish this with a system of timeouts and retries,
which makes them more complex to implement. It also means that when there is data loss on the
network, the media stream stalls while the protocol handlers detect the loss and retransmit the missing
data. Clients can minimize this effect by buffering data for display. While delay due to buffering is
acceptable in video on demand scenarios, users of interactive applications such as video conferencing
will experience a loss of fidelity if the delay that buffering contributes to exceeds 200 ms.[6]
Unicast protocols send a separate copy of the media stream from the server to each recipient. Unicast is
the norm for most Internet connections, but does not scale well when many users want to view the
same television program concurrently.
Multicasting broadcasts the same copy of the multimedia over the entire network to a group of clients
Multicast protocols were developed to reduce the data replication (and consequent server/network
loads) that occurs when many recipients receive unicast content streams independently. These protocols
send a single stream from the source to a group of recipients. Depending on the network infrastructure
and type, multicast transmission may or may not be feasible. One potential disadvantage of
multicasting is the loss of video on demand functionality. Continuous streaming of radio or television
material usually precludes the recipient's ability to control playback. However, this problem can be
mitigated by elements such as caching servers, digital set-top boxes, and buffered media players.
IP Multicast provides a means to send a single media stream to a group of recipients on a computer
network. A multicast protocol, usually Internet Group Management Protocol, is used to manage
delivery of multicast streams to the groups of recipients on a LAN. One of the challenges in deploying
IP multicast is that routers and firewalls between LANs must allow the passage of packets destined to
multicast groups. If the organization that is serving the content has control over the network between
server and recipients (i.e., educational, government, and corporate intranets), then routing protocols
such as Protocol Independent Multicast can be used to deliver stream content to multiple Local Area
Network segments.
Peer-to-peer (P2P) protocols arrange for prerecorded streams to be sent between computers. This
prevents the server and its network connections from becoming a bottleneck. However, it raises
technical, performance, quality, and business issues.
[ http://en.wikipedia.org/wiki/Streaming_media ]
Download