0% found this document useful (0 votes)
16 views126 pages

Unit - 4

The document discusses service discovery in mobile computing, detailing various protocols and frameworks such as UDDI, Jini, UPnP, and Bluetooth. It outlines the components of service discovery, classifications, and architectures, including centralized and distributed systems. Additionally, it covers Android's features, architecture, and the libraries that support application development on the platform.

Uploaded by

Sahil Pahuja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views126 pages

Unit - 4

The document discusses service discovery in mobile computing, detailing various protocols and frameworks such as UDDI, Jini, UPnP, and Bluetooth. It outlines the components of service discovery, classifications, and architectures, including centralized and distributed systems. Additionally, it covers Android's features, architecture, and the libraries that support application development on the platform.

Uploaded by

Sahil Pahuja
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 126

Unit 4

Service Discovery for Mobile Computing


Classifications, Considerations, and Challenge
Introduction
• Service discovery in the computing environment can be defined as
network protocols that allow automatic detection of hardware
devices and services as well as those generated by activities of
humans on a computer network.
• Once the demanded service is located, the user may invoke and
access it if it is a Web service or go to the actual location of its
provider to get served.
• Each service discovery protocol (SDP) consists of two basic
participating entities: the service provider and the service user.
• The service provider is the entity that offers the service, whereas the
service user is the one that is interested in finding and using a
service.
• In some cases, the service entity can be both the provider and the
user at the same time.
Service Discovery Components
Industry Standards
• The Industry standards include Universal Description, Discovery, and
Integration (UDDI), Jini, Universal Plug and Play (UPnP), Bluetooth,
Service Location Protocol (SLP), Salutation, Bonjour, and DEAPspace.
• Universal Description, Discovery, and Integration:
• The UDDI project is an industry initiative to define publishing and discovering
Web services and to advance the B2B integration on the Internet.
• The most important component in the framework is the Universal Business
Registry (UBR), which is a master directory for all publicly available Web
services.
• Four types of information are stored in the UBR, namely, business
information, service information, binding information, and information about
specifications for services.
• The disadvantage is the lack of scalability.
• Jini:
• The Jini framework, developed by Sun Microsystems and now transferred to the
Apache River project, specifies a way for clients and services to find each other on
the network and to work together to accomplish a task.
• The whole architecture is built on top of the Java Virtual Machine (JVM), and thus is
platform-independent.
• It organizes services into service groups called djinn, and each group has a DNS-style
name associated with it.
• Within djinn, there is a central registry called the Jini Lookup Server (JLS) that
maintains a flat collection of service items.
• Each service item represents an instance of a service, and is described by a
universally unique identifier (UUID) as well as a collection of attributes.
• Universal Plug and Play
• The goals of the UPnP protocol are to allow devices to connect to networks
with zero configuration and to simplify the process of using devices from a
wide range of vendors.
• There are three basic components in the protocol: devices, services, and
control points.
• A UPnP device is a container of services and nested devices; a service is the
smallest unit of control; and a control point is a controller capable of
discovering and controlling other devices.
• Whenever a service wants to join the network, it needs to send out a
message to notify others about its presence. The advertisement is done using
a multicast protocol.
• Bluetooth
• Bluetooth, as a recent industrial standard, is a cable-replacement technology
designed to wirelessly connect peripherals, which is unlike UPnP’s wired constraint.
• The technology allows a Bluetooth-enabled device to communicate via short-ranged
radio links with low power and low cost.
• For service discovery, the SDP is defined at the application layer.
• Service Location Protocol
• The SLP is an Internet Engineering Task Force (IETF) standard that supports automatic
resource discovery.
• Similar to UPnP, this protocol is only for IP-based networks, though it scales better
than UPnP.
• The SLP defines three types of agents in the service discovery framework: user agent
(UA), service agent (SA), and directory agent (DA).
• Salutation
• The Salutation protocol is an open standard service discovery and session
management protocol, although currently dissolved. The architecture defines
an entity called the Salutation Lookup Manager (SLM),
• Services are described by using their different functions called Function Units
that represent essential features of services and are kept by the local SLM.
• Service discovery can be performed across multiple SLMs either by unicasting
to a central directory server or by broadcasting.
• The matching is done by sending the required service type from the local
SLM to the remote SLM through the Remote Procedure Call (RPC) for
comparisons.
• Bonjour
• Bonjour, previously named Rendezvous, is an SDP developed by Apple for its
implementation of zero-configuration networking.
• It locates devices such as printers, as well as the services provided by them in
a local network (e.g., iTunes music), on the basis of standard IPs.
• The core component of service discovery in Bonjour is the Multicast Domain
Name System (MDNS) that is used for service name-to-address translation.
• Service discovery in Bonjour is accomplished by browsing.
• DEAPspace
• The DEAPspace project, started by IBM Research Zurich Laboratory, tries to
address P2P networking of pervasive devices instead of client–server
networking.
• All service information is stored on service providers. The DEAPspace
algorithm uses a push-based approach, in which all devices hold a list of all
known services called the world view.
Classifications of Service Discovery
Frameworks
• Taxonomy of Service Advertisement:
• Service Description: Services must be described before they can be discovered
• The quality of service (QoS) matching is strongly correlated to the richness of service
description.
• The simplest description format is the attribute–value pair structure that is deployed
in Jini/Bluetooth; they describe all the service information using a list of attributes in
the service template/record.
• To further reflect the hierarchical relationships among attributes and to allow
flexible design, an XML- style representation is adopted.
• The UDDI describes service entity with the outermost XML element defining its type
(e.g., businessEntity, businessService, and tModel) and the inner element defining its
detailed attributes (e.g., Identifier).
• The UPnP, SDS (Service Discovery Service) and INS/TWINE also adopt a similar
approach.
• Service Organization: To support service discovery, service information
must be stored in one or more places. The designed network scale and
type are very important to affect the storage design or service organization
scheme
• Centralized Architecture
• There is a clear directory server to store the service information.
• Service providers are requested to upload their service information to the server for
registration.
• Service discovery is done by directly sending requests to the server and getting
candidate services.
• This architecture is good for administration control and resource management, but it
lacks scalability and may cause a single point of failure.
• Depending on the scope hosted by the server, that is, global or local, the
centralized architecture can be further divided into two types: pure
centralized and distributed centralized.
• Pure Centralized — In this case, a single directory server hosts all the
service information, where global service discovery can be supported
easily.
• To minimize the issue of a single point of failure, replication is usually required for a
directory server. The UDDI supports data replication among two or more registry
nodes. In addition, to take into consideration data consistency and freshness, UDDI
deploys a logical ring structure for all sites involved in the replication process.
• Then a propagation process is started periodically propagating all updates since the
last propagation
• Distributed Centralized
• To minimize the chance of a single point of failure and to relieve the workload
of the global directory server in the pure centralized approach, distributed
centralized architecture is proposed.
• In this approach, service information is shared among several directory
servers and each server is only in charge of a partial scope.
• The advantage of such frameworks is that they can achieve certain levels of
scalability; they can also take into consideration practical service discovery
concerns such as service administration and privacy protection.
• Existing distributed centralized architectures can be mainly divided
into two types according to the backbone deployed: topology- specific
and non-topology-specific architecture.
Distributed Architecture
• In this type of architecture, there is no dedicated directory server to
maintain all the service information.
• Unstructured Distributed
• Each service provider joins the framework in a peer form and maintains
minimum information about the network topology and information regarding
services provided by other peers. Schemes for network conductivity, that is,
the selection of neighbors, must be designed to ensure node reachability.
• For instance, Acosta and Chandra propose four schemes to evaluate which
peers would be better neighbors:
(i) high-degree biased, in which nodes are biased toward selecting nodes with
high degree (many neighbors);
• ii) proximity biased, in which a proximity-biased evaluation function
measures the network latency between nodes and nodes that are closer in
terms of network distance are selected;
• (iii) connectivity biased, wherein an evaluation function is biased toward
nodes that give access to nodes in the network that were not previously
accessible through the current connections; and
(iv) proximity–connectivity hybrid, in which the algorithm expands the
evaluation function of the connectivity algorithm to also take into account
proximity.
• Structured Distributed —
• Unstructured P2P approaches have two weaknesses. First, they may result in
queries that are not always resolved, and, second, they do not guarantee
anything about performance while scaling.
• On the other hand, frameworks relying on structured P2P overlays solve these
issues.
• Most of them rely on the distributed hash table (DHT) concept and assign key
ownerships in a predetermined manner: each node in the overlay is
responsible for maintaining a part of the hash range that represents an index
to available resources; queries are input to a hash function and then are
looked up in the nodes responsible for the resulting keys.
• Service Lifetime
• Services can be added or removed from the framework at any time. Thus,
service availability or service lifetime maintenance is necessary.
• There are two main strategies to maintain service lifetime.
• One is a simple approach that requires service providers to explicitly register or
deregister their services to the framework.
• Service information in the framework (i.e., cache) is assumed to be persistent until the
respective provider explicitly requests removal of them. This approach is implemented in the
UDDI;
• The other maintenance approach is based on leasing; a leased resource or service
grant is time based.
• The provider may renew or cancel the lease before the lease time expires, but in the case of
no action, the lease simply expires and the corresponding service (i.e., cache information) is
removed from the framework.
• Typical examples are Jini and SLP frameworks.
Taxonomy of Service Discovery
• Service discovery is the most important element in the whole framework.
It consists of two main components: discovery method and matching
strategy.
• The discovery process deals with the routing of service queries to the
target service provider or the node where the requested service
information is stored.
• The search method is strongly related to the organization scheme used for service
management as well as the network type.
• A keyword-based matching strategy is commonly applied for service
description and user’s request, but because of its inadequate expressing
power, semantic matching, which relies on the ontology description as
mentioned before, is adopted in some frameworks.
• Discovery Method
• There are two fundamental models for service discovery:
• Push model—service providers or directory servers actively push their service
information into the network so that the requestors can be aware of their
existence;
• Pull model— query the network for the desired service when needed
• Matching Strategy
• service matching is strongly related to service description.
• The richer the information provided by service description, the more complex
the matching strategy tends to be.
• On the whole, there are two main factors to consider when developing such a
strategy: matching content and matching technique.
• Matching content refers to the information considered for service matching
whereas the matching technique refers to the detailed method used for matching
on the basis of content.
• Taxonomy of Service Access
• After retrieving the desired service information, for example, either
the location (can be URL) of the service or WSDL in the case of Web
services, the next step is to access them.
Android
• Android is an open source and Linux-based Operating System for
mobile devices such as smartphones and tablet computers. Android
was developed by the Open Handset Alliance, led by Google, and
other companies.
• Android offers a unified approach to application development for
mobile devices which means developers need only develop for
Android, and their applications should be able to run on different
devices powered by Android.
• The first beta version of the Android Software Development Kit (SDK)
was released by Google in 2007 where as the first commercial
version, Android 1.0, was released in September 2008.
Features of Android Operating System
• The unique features/characteristics of the android operating
system include the following.
• Near Field Communication (NFC)
• Alternate Keyboards
• IR Transmission
• No-Touch Control
• Automation
• Wireless App Downloads
• Storage & Battery Swap
• Custom Home Screen
• Widgets
• Custom ROMs
• Headset layout
• Storage
• Connectivity: GSM/EDGE, IDEN, CDMA, Bluetooth, WI-FI, EDGE,3G,NFC, LTE,GPS.
• Messaging: SMS, MMS, C2DM (could to device messaging), GCM (Google could
messaging)
• Multilanguage support
• Multi-touch
• Video calling
• Screen capture
• External storage
• Streaming media support
• Optimized graphics
Android Architecture
• The android is an operating system and is a stack of software
components which is divided into five sections and four main layers
that is
• Linux kernel
• Libraries
• Android runtime
• Application Framework
• Applications
• Linux Kernel
• The android uses the powerful Linux kernel and it supports a wide range of hardware drivers.
The kernel is the heart of the operating system that manages input and output requests from
the software. This provides basic system functionalities like process management, memory
management, device management like camera, keypad, display, etc the kernel handles all the
things.
• Linux is really good at networking and it is not necessary to interface it to the peripheral
hardware. The kernel itself does not interact directly with the user but rather interacts with
the shell and other programs as well as with the hardware devices on the system.
• Libraries
• The on top of a Linux kennel there is a set of libraries including open-source web browsers
such as WebKit, library libc.
• These libraries are used to play and record audio and video. The SQLite is a database that is
useful for the storage and sharing of application data.
• The SSL libraries are responsible for internet security etc
• This category encompasses those Java-based libraries that are specific to Android
development. Examples of libraries in this category include the application
framework libraries in addition to those that facilitate user interface building,
graphics drawing and database access. A summary of some key core Android
libraries available to the Android developer is as follows −
• android.app − Provides access to the application model and is the cornerstone of
all Android applications.
• android.content − Facilitates content access, publishing and messaging between
applications and application components.
• android.database − Used to access data published by content providers and
includes SQLite database management classes.
• android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
• android.os − Provides applications with access to standard operating
system services including messages, system services and inter-process
communication.
• android.text − Used to render and manipulate text on a device display.
• android.view − The fundamental building blocks of application user
interfaces.
• android.widget − A rich collection of pre-built user interface components
such as buttons, labels, list views, layout managers, radio buttons etc.
• android.webkit − A set of classes intended to allow web-browsing
capabilities to be built into applications.
• Having covered the Java-based core libraries in the Android runtime, it is
now time to turn our attention to the C/C++ based libraries contained in
this layer of the Android software stack.
• Android Runtime
• The android runtime provides a key component called Dalvik Virtual Machine which
is a kind of java virtual machine. It is specially designed and optimized for android.
The Dalvik VM is the process virtual machine in the android operating system. It is
software that runs apps on android devices.
• The Dalvik VM makes use of Linux core features like memory management and
multithreading which is in java language. The Dalvik VM enables every Android
application to run its own process. The Dalvik VM executes the files in the .dex
format.
• Application Framework
• The application framework layer provides many higher-level services to applications
such as windows manager, view system, package manager, resource manager, etc.
The application developers are allowed to make use of these services in their
applications.
• Application developers are allowed to make use of these services in their
applications.
• The Android framework includes the following key services −
• Activity Manager − Controls all aspects of the application lifecycle and activity stack.
• Content Providers − Allows applications to publish and share data with other
applications.
• Resource Manager − Provides access to non-code embedded resources such as
strings, color settings and user interface layouts.
• Notifications Manager − Allows applications to display alerts and notifications to the
user.
• View System − An extensible set of views used to create application user interfaces.
• Applications
• You will find all the android applications at the top layer and you will write
your application and install it on this layer. Examples of such applications are
contacts, books, browsers, services, etc. Each application performs a different
role in the overall applications.
• Android Emulator
• The Emulator is a new application in the Android operating system. The
emulator is a new prototype that is used to develop and test android
applications without using any physical device
• The android emulator has all of the hardware and software features like
mobile devices except phone calls. It provides a variety of navigation and
control keys. It also provides a screen to display your application. The
emulators utilize the android virtual device configurations. Once your
application is running on it, it can use services of the android platform to help
other applications, access the network, play audio, video, store, and retrieve
the data
Android Versions

Platform Version API Level VERSION_CODE

Android 6.0 23 MARSHMALLOW

Android 5.1 22 LOLLIPOP_MR1

Android 5.0 21 LOLLIPOP

Android 4.4W 20 KITKAT_WATCH KitKat for Wearables


Only

Android 4.4 19 KITKAT

Android 4.3 18 JELLY_BEAN_MR2

Android 4.2, 4.2.2 17 JELLY_BEAN_MR1

Android 4.1, 4.1.1 16 JELLY_BEAN

Android 4.0.3, 4.0.4 15 ICE_CREAM_SANDWI


CH_MR1
Android 4.0, 4.0.1, 14 ICE_CREAM_SANDWI
4.0.2 CH

Android 3.2 13 HONEYCOMB_MR2

Android 3.1.x 12 HONEYCOMB_MR1

Android 3.0.x 11 HONEYCOMB

Android 2.3.4 10 GINGERBREAD_MR1


Android 2.3.3

Android 2.3.2 9 GINGERBREAD


Android 2.3.1
Android 2.3

Android 2.2.x 8 FROYO

Android 2.1.x 7 ECLAIR_MR1


Android 2.0.1 6 ECLAIR_0_1

Android 2.0 5 ECLAIR

Android 1.6 4 DONUT

Android 1.5 3 CUPCAKE

Android 1.1 2 BASE_1_1

Android 1.0 1 BASE


Windows Operating System

• Windows operating system as compared to android is discussed below.


• An operating system like Windows is owned by Microsoft Incorporation &
launched in the year 1985.
• It is used in all personal computers in all organizations. So the present
stable version of this OS is Windows 10.
• Kernel type is Hybrid based.
• Chosen license is Proprietary & Source-available.
• The original version is commercial
• In all the PCs, it is the most frequently used operating system.
• It is used for media centers, workstations, PCs, embedded systems &
tablets
Advantages
• Android is a Linux based open-source operating system, it can be developed by
anyone
• Easy access to android apps
• You can replace the battery and mass storage, disk drive, and UDB option
• Its supports all Google services
• The operating system is able to inform you of a new SMS and Emails or the latest
updates.
• It supports Multitasking
• Android phone can also function as a router to share the internet
• It’s free to customize
• Can install a modified ROM
• Its supports 2D and 3D graphics
Disadvantages
• Apps work in the background
• Battery discharges easily due to a lot of processes within the background.
• Requires Google account
• Less security, so fake apps can be easily installed to steal your data from
strange resources
• Mobiles with low specification run very slow
• Generally, you require additional code on Java language as compared to
Objective-C.
• Android developers have a critical time
• Difficult layouts & animations are tough to code within Android.
• Protection of Virus is required
Technologies
• There are so many sophisticated Technologies are available to
develop android applications, the familiar technologies, which are
predominantly using tools as follows
• Android Studio
• Eclipse IDE(Deprecated)
Android Studio
• Android Studio is the integrated development environment (IDE)
for Google's Android operating system, and designed specifically
for Android development.
• It is available for download on Windows, macOS and Linux based
operating systems or as a subscription-based service in 2020.
• It is a replacement for the Eclipse Android Development Tools (E-
ADT) as the primary IDE for native Android application development.
Android Studio
• To create your new Android project, follow these steps:
• Install the latest version of Android Studio.
• In the Welcome to Android Studio window, click Create New Project.
• If you have a project already opened, select File > New > New
Project.
• In the Select a Project Template window, select Empty Activity and
click Next.
• In the Configure your project window, complete the following:
• Enter "My First App" in the Name field.
• Enter "com.example.myfirstapp" in the Package name field.
• If you'd like to place the project in a different folder, change its Save location.
• Select either Java or Kotlin from the Language drop-down menu.
• Select the lowest version of Android you want your app to support in
the Minimum SDK field.
• If your app will require legacy library support, mark the Use legacy
android.support libraries checkbox.
• Leave the other options as they are.
• Click Finish.
Considerations of Service Discovery for Mobile
Computing
• Network Scale:
• The first consideration is the network size or discovery scale, which may vary from a
couple of devices to the Internet scale.
• Classify them into two major categories: local scale and global scale.
• Where local scale refers to those personal, home, office or enterprise networks,
global scale refers to wide area or the Internet scale networks.
• Network Type
• Context Awareness
• Contextual information can be used to help adaptation in application scenarios such
as device interface design, QoS selection, recommendation, and reminding
• Security, Privacy, and Trust
IOS Operating System
• IOS is a Mobile Operating System that was developed by Apple Inc.
for iPhones, iPads, and other Apple mobile devices. iOS is the second
most popular and most used Mobile Operating System after Android.
Its first release was in 2007, which included iPhone and iPod Touch.
iPad (1st Generation) was released in April 2010 and iPad Mini was
released in November 2012. The iOS devices get evolved quite
frequently and from experience.
Features
• The power of iOS can be felt with some of the following features provided as a
part of the device.
• Maps
• Siri
• Facebook and Twitter
• Multi-Touch
• Accelerometer
• GPS
• High end processor
• Camera
• Safari
• Powerful APIs
• Game center
• In-App Purchase
• Wide Range of gestures
• The structure of the iOS operating System is Layered based. Its
communication doesn’t occur directly. The layer’s between the
Application Layer and the Hardware layer will help for
Communication. The lower level gives basic services on which all
applications rely and the higher-level layers provide graphics and
interface-related services. Most of the system interfaces come with a
special package called a framework. A framework is a directory that
holds dynamic shared libraries like .a files, header files, images, and
helper apps that support the library. Each layer has a set of
frameworks that are helpful for developers.
• CORE OS Layer:
All the IOS technologies are built under the lowest level layer i.e. Core OS layer.
These technologies include:
• Core Bluetooth Framework
• External Accessories Framework
• Accelerate Framework
• Security Services Framework
• Local Authorization Framework etc.
• It supports 64 bit which enables the application to run faster.
• CORE SERVICES Layer:
Some important frameworks are present in the CORE SERVICES Layer which helps
the iOS operating system to cure itself ad provide better functionality. It is the
2nd lowest layer in the Architecture as shown above. Below are some important
frameworks present in this layer:
• Address Book Framework-
The Address Book Framework provides access to the contact details of the user.
• Cloud Kit Framework-
This framework provides a medium for moving data between your app and iCloud.
• Core Data Framework-
This is the technology that is used for managing the data model of a Model View
Controller app.
• Core Foundation Framework-
This framework provides data management and service features for iOS applications.
• Core Location Framework-
This framework helps to provide the location and heading information to the application.
• Core Motion Framework-
All the motion-based data on the device is accessed with the help of the Core Motion
Framework.
• Foundation Framework-
Objective C covering too many of the features found in the Core
Foundation framework.
• HealthKit Framework-
This framework handles the health-related information of the user.
• HomeKit Framework-
This framework is used for talking with and controlling connected devices
with the user’s home.
• Social Framework-
It is simply an interface that will access users’ social media accounts.
• StoreKit Framework-
This framework supports for buying of contents and services from inside
iOS apps.
• MEDIA Layer:
With the help of the media layer, we will enable all graphics video, and
audio technology of the system. This is the second layer in the architecture.
The different frameworks of MEDIA layers are:
• ULKit Graphics-
This framework provides support for designing images and animating the view
content.
• Core Graphics Framework-
This framework support 2D vector and image-based rendering ad it is a native
drawing engine for iOS.
• Core Animation-
This framework helps in optimizing the animation experience of the apps in iOS.
• Media Player Framework-
This framework provides support for playing the playlist and enables the user to use
their iTunes library.
• AV Kit-
This framework provides various easy-to-use interfaces for video
presentation, recording, and playback of audio and video.
• Open AL-
This framework is an Industry Standard Technology for providing
Audio.
• Core Images-
This framework provides advanced support for motionless images.
• GL Kit-
This framework manages advanced 2D and 3D rendering by
hardware-accelerated interfaces.
• COCOA TOUCH:
COCOA Touch is also known as the application layer which acts as an
interface for the user to work with the iOS Operating system. It supports
touch and motion events and many more features. The COCOA TOUCH
layer provides the following frameworks :
• EvenKit Framework-
This framework shows a standard system interface using view controllers for viewing
and changing events.
• GameKit Framework-
This framework provides support for users to share their game-related data online
using a Game Center.
• MapKit Framework-
This framework gives a scrollable map that one can include in your user interface of
the app.
• PushKit Framework-
This framework provides registration support.
Features of iOS operating System:
• Highly Securer than other operating systems.
• iOS provides multitasking features like while working in one
application we can switch to another application easily.
• iOS’s user interface includes multiple gestures like swipe, tap, pinch,
Reverse pinch.
• iBooks, iStore, iTunes, Game Center, and Email are user-friendly.
• It provides Safari as a default Web Browser.
• It has a powerful API and a Camera.
• It has deep hardware and software integration
Applications of IOS Operating System:
• iOS Operating System is the Commercial Operating system of Apple
Inc. and is popular for its security.
• iOS operating system comes with pre-installed apps which were
developed by Apple like Mail, Map, TV, Music, Wallet, Health, and
Many More.
• Swift Programming language is used for Developing Apps that would
run on IOS Operating System.
• In iOS Operating System we can perform Multitask like Chatting along
with Surfing on the Internet.
Advantages of IOS Operating System:
• The iOS operating system has some advantages over other operating
systems available in the market especially the Android operating
system. Here are some of them-
• More secure than other operating systems.
• Excellent UI and fluid responsive
• Suits best for Business and Professionals
• Generate Less Heat as compared to Android.
Disadvantages of IOS Operating System:

• More Costly.
• Less User Friendly as Compared to Android Operating System.
• Not Flexible as it supports only IOS devices.
• Battery Performance is poor.
Agents and the Services Offered by Agents
• Agent is the one who carries out certain tasks delegated by someone
on his/her behalf.
• Thus, an agent is an entity that represents and has power or authority
to act on behalf of individuals, groups, institutions, group of
institutions, or even a nation.
• However, an agent need not necessarily be a human. It can as well be
a hardware agent (e.g., a robot) or a software agent
Software Agents
• software agent is essentially a piece of computer code that performs
a set of predefined actions on behalf of a client (a program fired by a
user), and has the intelligence to autonomously adapt to the
requirements of the client.
• The idea of considering software as an agent can be naturally
extended to decouple computing units from places of computing. A
computer is considered as a place of computing.
• A software agent is a logical carrier of computing. Thus, by allowing
software agents to move or conduct themselves as mobile agents, a
computation unit is effectively decoupled from the place where it is
executed.
Taxonomy of Agents
• An agent can be classified using one or more of the following criteria: (i)
mobility, (ii) interaction capabilities, and/or (iii) agent attributes.
• An agent that can migrate from one environment to another or from one
host to another is a mobile agent.
• An agent that cannot move out of its place of computation is referred to as
a stationary or a static agent.
• Three attributes have been specified for classification of agents.
• Autonomy:
• Intelligence: Agents must have sufficient intelligence to take independent decisions.
• Adaptability: Agents operate in hostile guest environments that differ widely. Many
external events may expect a response from an agent. Therefore, agents must be
equipped to react to such external events/conditions and adapt accordingly.
• Distinction of agents on the basis of a number of attributes are:
• Communicative: Ability to communicate is fundamental to cooperation and
interaction.
• Cooperation: If several agents cooperate to perform a job, then that job can
be done quickly and efficiently.
• Autonomy: An agent can follow the goals autonomously without requiring
any triggers from the environment or explicit instructions from its controlling
entity.
• Mobility: An agent can move from one network node to another on its own.
• Reactivity: Sensors and actuators enable agents to react.
• Proactivity: An agent can take initiative on its own to accomplish the task.
• Character: An agent may have a personality and an emotional state; it can
represent the person it is representing. In other words, it is a virtual person.
• Learning: An agent should modify its internal reasoning capabilities on the
basis of previous experiences. That is agents should learn and adapt
themselves to the environments in which they execute.
Mobile Agent Technology
• Most mobile agent systems are Java based whereas others use different
scripting languages. The choice of Java for agent programming is driven by
a number of reasons.
• enforces security through strong-type safety, and sandbox execution environment.
• Static-type checking in the form of byte code verification is used to check the safety
of a downloaded code.
• Some dynamic checking is also performed during runtime.
• With sandbox execution environment, it is possible to isolate memory and method
accesses, as well as to maintain mutually exclusive execution domains
• Aglets , Ajanta, Concordia , Voyager, Mole, and Odyssey are some of the examples of
Java-based mobile agent systems.
• Non-Java-based agent platforms use scripting languages such as Tcl, Perl,
Python, Telescript, and so on
Code Mobility
• The idea of executing code on a remote machine
• A piece of software consists of three elements, namely, (i) data, (ii) code, and (iii)
program stack.
• The mobility support may be weak or strong depending on the mobility of these
three elements of a program unit.
• Strong mobility is represented by process migration involving mobility of an
executing or a suspended process from one computer to another
• Code migration may be initiated either by the receiver or by the sender. A client
sending a query to a database server is an example of sender-initiated code
migration, because the execution at the server is triggered by the client’s
request.
• When a client wants to execute some code available in a remote machine, then it
becomes a receiver. A Java applet is an example of a receiver-initiated code
migration. The receiver can be anonymous in a receiver- initiated code migration.
Application Domains
• E-commerce: Agents acting on behalf of a client can approach appropriate service
providers for specific service requirements such as gathering business
information over the Internet and can collaborate with other agents for
information sharing in order to strike a favorable deal on behalf of the client.
• Personal Assistance: A mobile agent can act as an assistant by performing tasks
on behalf of a user.
• Telecommunication Network Services: Value-added services in
telecommunication networks require dynamic network reconfiguration
capabilities and user customization.
• Information Gathering: An obvious application of mobile agents is information
gathering. As a mobile agent interacts with other agents and autonomously
executes at different agent platforms, it can gather information that is not known
beforehand
• It can accumulate certain knowledge on its own by interacting with other agents, and may
decide to visit places where information of substance may be available.
• Information Dissemination: Dissemination is the reverse process where
information is distributed to all network nodes from the source.
• One important application could be to disseminate software updates/patches.
• Agents can bring new software components or installation procedures directly to the
consumer’s personal computer and autonomously update the software.
• Watch-Dog Application: Any watch-dog application monitoring
occurrences of certain events can be implemented using mobile agents.
• For example, we can place a network management agent that detects traffic
congestion at different nodes in a network by monitoring the patterns of network
traffic. It can alert a network administrator when congestion is detected or when an
unusual pattern of data transactions is detected.
• This could be important especially in a network environment where data
communication is broadcast oriented.
• Parallel Processing: Parallel processing is an obvious application
domain for mobile agent technology.
• A mobile agent can clone itself and dispatch the clones to distributed
computing nodes.
• Pervasive Computing: It involves creating computer systems that can
sense and interpret the actions or even moods of users under its
environment.
Mobile Computing with Mobile Agents
• There are several reasons as to why mobile agents are particularly suitable
for development of mobile applications. Important among these are
• Mobile agents can support disconnected operations on mobile devices.
• Mobile agents allow dynamic adaptation and easy integration of
heterogeneous environments. An agent-based middleware can, therefore,
support new innovative location-aware and context-aware mobile
applications.
• Mobile agents can respond to dynamic changes in network and computation
loads by providing a flexible framework for developing distributed
applications where threads of computation are decoupled from the places
where the threads execute.
• Mobile agents enforce security policy in an effective manner through agent
infrastructures at service providers’ ends.
Disconnected Operation
• The fragility of wireless connection and severe constraints on the
availability of bandwidth force mobile devices to intermittently
disconnect from the network either voluntarily or involuntarily
• A mobile agent, representing a computing unit for a client at a remote
machine, can continue the computation on the client’s behalf.
• The only requirement is that the client device must have an active
connection, for a sufficient time, enabling it to inject a mobile agent
into the fixed network. The results can be delivered by the mobile
agent to the client when it reconnects later.
• However, there is some technical difficulty in allowing agents to jump to
and from a mobile device due to the intermittent nature of wireless
connectivity.
• The agents may not be able to exactly synchronize their attempts with the
brief period of network connectivity enjoyed by the client device.
• To overcome this difficulty, a stationary agent called a docking agent can
be placed for each mobile terminal in the fixed network.
• Essentially, a docking agent works as an interceptor on behalf of a mobile
host, and intercepts all connection requests to that host.
• As shown in Figure, the interceptor has a counterpart running in the
mobile terminal too.
• Many interceptors may be hosted in a single machine on a fixed network.
Heterogeneous Environment Integration
• It is the responsibility of mobility middleware to keep track of a
mobile terminal’s location.
• Taking advantage of location awareness, mobile applications can
apply specific optimizations according to the properties of a network
connection and the characteristics of the mobile device, whereas
mobile agents can continue computations on behalf of the user,
leveraging the advantage of a fixed network for the best performance
• Mobile agents do not have dependencies either on the host or on the
underlying transport layer.
• The fundamental idea on which they function is code mobility.
• Some of the important requirements for supporting code mobility across
network computers:
• A common application language for writing agent codes
• Persistence of agent processes (requires transfer of execution state along with its
code when an agent migrates)
• Communication mechanism between agent hosts
• Security mechanisms to protect agents from agent platforms and vice versa
• These requirements would make mobile agent systems eminently suitable
for heterogeneous environments.
Mobility service layers:
• The layer supports the following four basic mobility services:
1. Mobility-enabled naming services (MNSs)
2. User’s virtual environment (UVE)
3. Mobile virtual terminal (MVT)
4. Virtual resource manager (VRM)
• MNSs are used to translate high-level names of entities into globally
assigned unique identities. It may also maintain current locations of the
entities.
• UVE allows a user to connect to the Internet from different locations. It
works like a personal and logical docking port for a user. The user’s
personal information is stored in a profile at the fixed host where the user
registers first. UVE may replicate this profile at several other UVE servers at
different locations.
• MVT supports physical movements of a mobile device to different
locations by allowing continuity of its local execution while preserving
the state of interactions with the network resources and services.
• Mobile agents are used to trace mobile terminals. Using care-of addresses,
discovery and directory services, the location of a mobile terminal can be
traced.
• An agent at a fixed location acts as proxy for any mobile device and forwards
undelivered messages to it, whereas a discovery service keeps track of the
mobility of the device within a network locality.
• Mobile agent-based VRM allows for modification and migration of
system resources at runtime to deal with complex resource
management.
Distributed Computing
• Advantages over Client–Server Systems
• Communication Latency and Bandwidth: It is always beneficial to
move computation to the place of data rather than moving data,
especially if the available bandwidth is low and the amount of data is
large.
• Offline Processing: Because of its roaming nature, mobile computing
devices often experience network outages for long time.
• A mobile device can delegate responsibilities to an agent to act on its behalf
and perform requisite actions at the servers besides collecting the results.
• Improved Response Time:
• Large Asynchronous Request Granularity: When mobile agent
computing is used, a remote client can send many requests within a
single agent.
• Dynamic Load Distribution: Mobile agents include code to take
preemptive actions in order to adapt to environmental changes
• Protocol Encapsulation: encapsulating the protocols of the legacy
applications running at the servers.
Agent Security
• These security threats can be classified into three types:
• Disclosure of information
• Denial of information
• Corruption of information
• A mobile agent system is modeled in terms of servers (agent
platforms) and agents.
• The security scenario can be examined from three different
perspectives:
• Attack on Servers by Agents: The attack by an agent may be in the
form of masquerading, denial of services, and unauthorized
accesses.
• Attack on Agents by Other Agents: Agent-to-agent attacks can belong
to any of the three categories of attacks mentioned above.
• In addition, nonrepudiation is another security concern when agents are
allowed to conduct transactions among themselves. The basic premises on
which an agent society works are trust, truthfulness, and confidentiality. Thus,
a compromise in any aspect entails a collapse of the whole agent society.
• Attack on Agents by Servers: The server or the computing platform
itself can be nontrustworthy.
• The attack by a non trustworthy server may again be in the form of
masquerading and denial of services. In addition, a server may induce agents
to modify its behavior and eavesdrop on the communication between
interacting agents.
Protecting Servers or Agent Platform
• Software-Based Fault Isolation: T
• Safe Code Interpretation:
• Signed Code:
• Authorization and Attribute Certificates
• State Appraisal
• Path Histories
• Proof-Carrying Code
Protecting Clients or Agents
• Partial Result Encapsulation:
• Mutual Itinerary Recording
• Itinerary Recording with Replication and Voting
• Execution Tracing
• Environmental Key Generation
• Computing with Encrypted Functions:
• Obfuscated Code
Embedded Linux
• Embedded Linux is a type of Linux operating system/kernel that is designed
to be installed and used within embedded devices and appliances.
• It is a compact version of Linux that offers features and services in line with
the operating and application requirement of the embedded system
• Embedded Linux, though utilizing the same Linux kernel, is quite different
from the standard Linux OS. Embedded Linux is specifically customized for
embedded systems.
• Therefore it is has a much smaller size, requires less processing power and
has minimal features.
• Based on the requirements of the underlying embedded system, the Linux
kernel is modified and optimized as an embedded Linux version
• Android OS is a type of embedded Linux, customized to be used on
smartphones. Other devices on which embedded Linux is used
include:
• Smart TVs
• Wireless routers
• Tablet PCs
• Navigation devices
• Other industrial and consumer electronic equipment
Advantages of using embedded Linux
• Open source code.
• Low price.
• Multiple software, development, and support providers.
• Highly customizable.
• Greater flexibility.
Disadvantages of embedded Linux
• Having reacher features can lead to higher complexity.
• Modifying the hardware can affect software.
• Need for larger memory space.
Minimum Hardware Requirement to use Linux
on Embedded Processors
• Linux Kernel supports 32-bit and 64-bit processor architectures and it supports
almost all modern popular processor architectures such as:
• ARM ( used in almost types of applications)
• X86 ( Multimedia and industrial applications)
• MIPS ( networking applications such as routers and hotspots)
• PPC/PowerPC ( hard real-time and deadline constrained applications)
• SH ( Multimedia applications)
• In order to run Linux on a target embedded processor, a minimum of 8MB of
RAM is required. But a real practical application requires at least 32MB RAM. But
the actual requirement of RAM memory depends on your embedded application
size.
• Other than RAM, a minimum of 4MB storage memory is also required. The
storage memory can be one of the following types:
• NAND or NOR Flash
• SD or MMC cards
Embedded Linux Architecture
• Main Components of Embedded Linux Systems
• Cross development toolchain ( installed on a host system)
• Bootloader
• Kernel
• Device Tree
• Root file system
• System Programs
• Applications
• Toolchain
• A toolchain is a collection of development tools, such as GCC compiler, C
libraries, and GNU debugger, which are used to create source code for the
target embedded hardware. Normally, cross-compilation toolchains are
utilized in embedded Linux, because the target embedded processor does
not have sufficient resources for these toolchains. In cross-compilation
systems, development is performed on the host system (a powerful PC),
and then source code is deployed on the target device using different
interfaces such as serial, ethernet, etc. Serial communication is the most
commonly used interface between the host system and a target device.
• The tools that are used for communication available in Linux are Minicom,
Picocom, Gtkterm, Putty, and HyperTerminal in windows.
• Bootloader
• This is a piece of code that runs when we apply power to the embedded hardware first time.
Bootloader performs various hardware initialization steps before loading the operating system.
When a processor boots up or resets, each processor has a number of predefined hardware steps
and configurations.
• Followings are the main roles of a bootloader:
• Target hardware initialization
• Load the application binary ( operating system, root file system, device tree ) from the non-
volatile external storage to the RAM memory
• RAM connects externally to the SOC and it stores run-time data, operating system, root file
system, application software, and stack/heap.
• After that execute the main operating system code from the RAM memory
• Different microprocessors may have a distinct process of booting sequence but the underlying
concepts remain the same.
• In embedded Linux, two generic or universal bootloaders are popular such as Uboot and barebox.
• Linux Kernel
• It is a software or operating system kernel that manages resources of embedded
processors optimally and efficiently. The main core component of embedded
Linux is the Linux Kernel. It is a layered operating system architecture that means
it divides into two layers such as user space and kernel space memory space.
• It provides various services such as:
• Process management ( Allocates CPU resources concurrently to processes/tasks
through scheduler)
• Process scheduling ( Schedules concurrently running process to run on the CPU
using scheduling algorithms)
• Memory management ( Manage memory for different processes through virtual
memory support)
• Interprocess communication (Sometimes tasks require to share data
with each other and the interprocess communication feature provides
this support through shared memory)
• File management (Manage how information is stored and accessed
by the system)
• I/O management ( Supported through device drivers such as
character, block, and USB device drivers)
• Networking ( Support for network device drivers )
• Interface with hardware through device drivers
• Device Tree
• The embedded linux based hardware platforms also contains
peripherals which do not have the ability to acknowledge their
existence to the operating system kernel. There must be a way to
inform Linux kernel about these hardware peripherals.
• The Linux kernel contains thousands of device drivers and during the
boot-up process, the kernel should know which non-discoverable
hardware devices are connected with your embedded Linux based
system. The question is how does the kernel find the details of the
connected hardware devices? The answer is the device tree.
• Root File systems
• In Linux, Filesystems organize data into files and directories inside the
storage device. In fact, everything in Linux is a file, store, and accesses
through a file. These files and directories are available in the form
hierarchy.
• During the boot-up process, Linux kernel needs one more component
that is a root filesystem. A root filesystem is a special type of
filesystem and it contains all the configuration files that are required
to prepare the execution environment for the embedded device, for
example, preparing graphical displays etc. . It also contains the first
parent process running on Linux (initi).
• The Linux kernel works with the root file system. This is the file system on
which the roots can be mounted. There are two types of file systems for
desktop and server distributions. These are the initial root system and real
root system. The initial root system is used for mounting and running the
latter. The initial root system is used to load drivers on a desktop. The
switch between the initial root file system and the real root file system is
called a pivot.
• Configuration files
• The kernel needs configuration files to know the users and groups in the
system. It also needs configuration files to manage file permissions. These
files are not read by programs and are used by the kernel to provide a
function by a system library.
Classification of embedded Linux system
• On the basis of size, embedded system has been categorized in three
embedded Linux that are small, medium and large.
• Small systems
• Small systems have low powered CPU, ROM is less than 4 MB and RAM is 8
to a 16 MB.
• Medium size system
• Medium size systems contain medium powered CPU, RAM of 32 MB and
removable memory cards.
• Large size systems
• Large size systems contain powerful CPU or multi CPUs, large RAM and
permanent storage.
Windows Phone
• Windows Phone (WP) is a discontinued family of mobile operating
systems developed by Microsoft for smartphones as the replacement
successor to Windows Mobile. Windows Phone featured a new user
interface derived from
• It was first launched in October 2010 with Windows Phone 7. Windows
Phone 8 succeeded it in 2012, replacing the Windows CE-based kernel of
Windows Phone 7 with the Windows NT kernel used by the PC versions
of Windows the Metro design language.
• n 2015, Microsoft released Windows 10 Mobile, which promoted increased
integration and unification with its PC counterpart, including the ability to
connect devices to an external display or docking station to display a PC-
like interface.
• in 2015, Microsoft released Windows 10 Mobile, which promoted
increased integration and unification with its PC counterpart,
including the ability to connect devices to an external display
or docking station to display a PC-like interface.
• The pair announced integration of Microsoft services with Nokia's
own services; specifically:
• Bing would power search across Nokia devices
• integration of Nokia Maps with Bing Maps
• integration of Nokia's Ovi store with the Windows Phone Store
Features
• User interface: Windows Phone features a user interface based on
Microsoft's "Metro" design language, and was inspired by the user
interface in the Zune HD. The home screen, called the "Start screen", is
made up of "Live Tiles", which have been the inspiration for the Windows
8 live tiles
• Text input
• Web browser: Internet Explorer
• Contacts
• Email
• Multimedia: Xbox Music and Xbox Video are built-in multimedia hubs
providing entertainment and synchronization capabilities between PC,
Windows Phone, and other Microsoft products
• Games
• Search
• Bing is the default search engine on Windows Phone handsets
because its functions are deeply integrated in the OS
• Cortana: Cortana allows users to do tasks such as set calendar
reminders and alarms, and recognizes a user's natural voice, and can
be used to answer questions
• Office suite
BREW
• Binary Runtime Environment for Wireless (Brew
MP, Brew, Qualcomm BREW, or BREW) is an application development
platform created by Qualcomm.
• It was originally developed for CDMA handsets, but has since been p
orted to other air interfaces including GSM/GPRS. BREW is a software
platform that can download and run small programs for playing game
s, sending messages, sharing photos, etc.
• The main advantage of BREW platforms is that the application develo
pers can easily port their applications between all Qualcomm devices.
• BREW runs between the application and the wireless device's chip op
erating system so as to enable a programmer to develop applications
without needing to code for system interface or understand wireless a
pplications. It debuted in September 2001.
• The figure shows the architecture and the relationship between the
BREW API platform and the mobile applications.
• The platform is air-interface-independent, which means that
handsets using other wireless technologies can be BREW-enabled in
the future.
BREW Benefits
• By providing a standard application layer, consumers, developers,
wireless operators, and handset manufacturers all benefit.
• Consumers: BREW allows for consumers to download new
applications over the air, which means they can personalize their
devices.
• BREW will promote a whole new range of applications for the
consumer, ranging from instant messaging to location-based
services.
• The consumer will have the final say in what is deployed to their
device; moreover, they will only have to pay for applications they
are interested in.
• Developers. BREW makes it possible for developers to create
new applications for mobile phones.
• They no longer have to establish a relationship with wireless
handset manufacturers or carriers or have to own a physical device
prototype.
• Instead, developers can use C/C++ or other high-level languages
to create their applications for a wide range of BREW-enabled
devices.
• QUALCOMM has also established a TRUE BREW testing process to
ensure application compatibility and quality.
• Handset manufacturers. Once handset manufacturers integrate BREW into
their devices, they will be able to release new products faster.
• Application testing will no longer have to be included in the factory integration tasks
because they can be deployed to the device at a later time.
• In addition, handset manufacturers will be able to use a wide range of third-party
applications, allowing them to spend more time on handset design and
development.
• Wireless operators. Wireless operators benefit from the capability to
provide a broader range of applications for handsets running on their
networks.
• This can help drive mobile phone adoption, as well as increase airtime usage. In
many cases, it is the wireless operator that provisions the applications, thereby
taking a percentage of the application revenue
BREW application development
• Software for the BREWenabled handsets can be developed in C or C+
+ using the freely downloadable BREW SDK.
• The SDK includes a BREW Emulator, or starting with BREW Version 3.
15 and above, the BREW Simulator, for testing during the developmen
t process.
• Unlike the Java ME platform, where any developer can upload and ex
ecute software on any supported handset, BREW applications must b
e digitally signed. Because BREW gives complete control over the han
dset hardware, only content providers or authenticated BREW develo
pers.
• The tools necessary to create a digital signature. Furthermore, develo
per-signed applications can only execute on "test-
enabled" handsets (BREW version 3.1 and newer devices are already
"test-enabled")
• Once the application has been developed and internally tested, it mu
st be submitted to NSTL for TRUE BREW testing
• After the application passes all tests, it may be offered to a mobile op
erator (content provider) to be accessible for download to general ha
ndsets.
• The application is then signed by the content provider, to allow its exe
cution on any supported BREW handset.
• The BREW Emulator (currently called "BREW Simulator") does not emulate
handset's hardware. Instead, the BREW application is compiled to native co
de and linked with a x86compatible BREW runtime library
• Because of this, obscure platform bugs related to memory alignment and v
arious firmware related glitches make debugging applications without a BR
EW handset difficult.
• Developers must test their applications on real BREWenabled handsets.
• To do that, the handset must be enabled for BREW testing (Qualcomm's de
velopment labs can do the service).
• Starting from BREW 3.1,
"testenable" bit functionality was removed, and now all that is needed is a
developer's digital signature.
• For testing purpose, BREW applications can be transferred using a USB or s
erial cable to any BREWcompatible handset using "BREW AppLoader" fro
m Qualcomm.
• A BREW application contains several components which must be present,
otherwise it will be automatically deleted on reboot.
• This includes a "name.mif" file which describes the application, the feature
s it uses and permissions requested, a "name.mod" file which is the actual
compiled binary,"name.bar" which contains string and image resources if r
equired, and a "name.sig" which is the application digital signature.
• Applications which do not have, or have an invalid or expired digital signat
ure, are automatically deleted on reboot.
Advantages
• * The BREW API is more standard across supported phones than the J2ME
API, which can be considerably different depending on the phone model.
• BREW 2.0 allows direct access to the screen buffer.Fact|date=October 2007
Legacy (ie. pre2005) J2ME phones often have an artificial limit to the size o
f the binary (128KB is common). This isn't present with BREW.
• BREW applications allows more freedom in Objectoriented programming.
• In J2ME the filesize overhead for extra classes encourages C
like programming. In addition, because arrays of nonprimitive types are act
ually arrays of references, there is significant memory overhead in J2ME for
arrays of classes. To get around this, parallel arrays of primitive types are
often used in J2ME.
Disadvantages
• BREW is a proprietary standard and only works in a small subset of m
obile phones whereas J2ME is an open standard and is supported by
most mobile phones.
• The centralised and proprietary nature of BREW and the steep cost of
getting a digital signature means that it's virtually inaccessible to hom
ebrew and hobbyist developers, as compared to open systems such a
s J2ME and Symbian OS.
• In J2ME, the entire source file and resources are compressed by defau
lt. To compress resources with BREW, you have to roll your own soluti
on. The same is true of BREW code, it can only be compressed if you
devise your own method or buy a commercial solution.
• Commercial profilers for C/C++ are expensive, whereas the J2ME envi
ronment comes with a profiler. However, free open source C/C++ prof
ilers for Linux are readily available.
• The BREW developer community is fairly small and limited to Qualco
mm's boards and web sites. There are not many books available eithe
r.
HTML5
• HTML5 is the next major revision of the HTML standard superseding HTML
4.01, XHTML 1.0, and XHTML 1.1. HTML5 is a standard for structuring and
presenting content on the World Wide Web.
• HTML5 is a cooperation between the World Wide Web Consortium (W3C)
and the Web Hypertext Application Technology Working Group (WHATWG).
• The new standard incorporates features like video playback and drag-and-
drop that have been previously dependent on third-party browser plug-ins
such as Adobe Flash, Microsoft Silverlight, and Google Gears.

Browser Support
• The latest versions of Apple Safari, Google Chrome, Mozilla Firefox,
and Opera all support many HTML5 features and Internet Explorer 9.0
will also have support for some HTML5 functionality.
• The mobile web browsers that come pre-installed on iPhones, iPads,
and Android phones all have excellent support for HTML5.

New Features
• New Semantic Elements − These are like <header>, <footer>, and
<section>.
• Forms 2.0 − Improvements to HTML web forms where new attributes have
been introduced for <input> tag.
• Persistent Local Storage − To achieve without resorting to third-party
plugins.
• WebSocket − A next-generation bidirectional communication technology
for web applications.
• Server-Sent Events − HTML5 introduces events which flow from web server
to the web browsers and they are called Server-Sent Events (SSE).
• Canvas − This supports a two-dimensional drawing surface that you can
program with JavaScript.
• Audio & Video − You can embed audio or video on your webpages
without resorting to third-party plugins.
• Geolocation − Now visitors can choose to share their physical location
with your web application.
• Microdata − This lets you create your own vocabularies beyond
HTML5 and extend your web pages with custom semantics.
• Drag and drop − Drag and drop the items from one location to
another location on the same webpage.
• The HTML 5 language has a "custom" HTML syntax that is compatible with
HTML 4 and XHTML1 documents published on the Web, but is not
compatible with the more esoteric SGML features of HTML 4.
• HTML 5 does not have the same syntax rules as XHTML where we needed
lower case tag names, quoting our attributes, an attribute had to have a
value and to close all empty elements.
• HTML5 comes with a lot of flexibility and it supports the following features

• Uppercase tag names.
• Quotes are optional for attributes.
• Attribute values are optional.
• Closing empty elements are optional.
J2ME
• Java ME was designed by Sun Microsystems.
• Java ME includes flexible user interfaces, robust security, built-in network
protocols, and support for networked and offline applications that can be
downloaded dynamically.
• Architecture The Java ME Architecture comprises of three software layers:
• The first layer is the configuration layer that includes the JVM, which directly
interacts with the native OS. The Configuration layer also handles the interaction
between the profile and the JVM.
• The second layer is the profile layer, which consists of the minimum set of
application programming interface (API) for the small devices.
• The third layer is the Mobile Information Device profile (MIDP) layer. The MIDP layer
contains java APIs for user network connections, persistence storage, and the user
interface. It also has access to CLDC libraries and MIDP libraries.

You might also like