Unit - 4
Unit - 4
• 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.