Download - Deepak Mathur

  • 8/13/2019 Deepak Mathur



    Real-Time Messaging for Embedded Systems and Mobile Devices

    Antenna GPS Embedded SMA

    sku: GPS-00177

    Description: Embedded antenna for small, mobile applications. Basic

    unpackaged antenna with LNA. 5inch cable terminated with standard male

    SMA connector. Match it with an SMA interface cable to create a trul

    small !"S prototpe#

    $his unit works %er well out of the bo&, but the full packaged antennas

    ha%e better strain relief where the SMA cable meets the antenna housing. 'fou plan on using this antenna in a %ibration intensi%e application, we

    recommend ou reinforce the connection with epo& or Shoe !oo.


    !ain ()dB

    *S+ -(.

    *oltage /./* 012 .5*

    3urrent 4(mA

    +eight 4g

    Mobile and embedded computer-based devices are becoming integralcomponents of business and mission-critical systems. As a result, device-


  • 8/13/2019 Deepak Mathur



    based software must increasingly communicate with software running onother devices as well as with backend enterprise applications. Application-to-application messaging is the enabling technologyfor this

    communication.RTIs real-time messaging infrastructure was designed fromthe ground up to meet the uni!ue challenges posed by embedded andmobile computing. These include"

    #upport for speciali$ed mobile, embedded and real-time operating systems%RT'

    &peration in resource-constrained environments - with limited memory,storage, processor and network bandwidth

    Real-time performance - with deterministically low latency and high


    (eterogeneous interoperability - across programming languages,

    operating systems and processor types

    )eployment in dynamic, ad hoc environments - without system

    administration or servers

    *ommunicating over +A, wireless and satellite networks - which

    can be intermittent, low bandwidth, high delay and lossy

    Meeting high-assurance re!uirements - including certification to

    safety and security standards

    ecause traditional enterprise messaging and integration technologies donot satisfy embedded and mobile re!uirements, developers havetraditionally had to create their own custom communications infrastructure.These in-house solutions can be time-consuming and epensive todevelop. They are also etremely costly to maintain as new re!uirementsare introduced, personnel turns over, and systems become larger, morecomple, more stovepipe and thus more brittle.

    +ith a commercial alternative, RTI accelerates time-to-deployment whilesignificantly reducing software lifecycle costs.

    RTI Attribute Benefits over Custom Middleware


  • 8/13/2019 Deepak Mathur



    Commercial ff-T!e-S!elf


    Turnkey messaging


    Tracks the latest

    operating system anddevelopment environmentreleases

    /rovides an ecosystem

    of integrated technologiesfrom RTI and partners

    #aves time and costs

    otherwise re!uired for internalmiddleware development, porting,integration, maintenance andsupport

    0asily evaluated against

    re!uirements1 an in-housesolutions capabilities, performanceand scalability can not be knownuntil it is complete

    /rovides time and cost-

    certainty1 eliminates risk thatmiddleware development will takelonger than epected

    Standards com$liant

    2M#, ))# and #34

    applications programminginterfaces %A/Is'

    RT/# on-the-wire


    5amiliar, well-documented

    interfaces and readily availabletraining improve productivity ofapplication developers%middleware users'

    /ortability and interoperability

    provide vendor independence andease integration of independentlydeveloped components


    *omprehensive feature


    /erformance and

    Meets current and future

    re!uirements, eliminating the riskthat time-consuming and costly re-


  • 8/13/2019 Deepak Mathur



    scalability headroom

    road platform,

    programming language andtransport support

    engineering will be re!uired later

    Eases integration

    4oosely-coupledintegration model based onpublish6subscribe

    5ull interoperability

    across platforms andprogramming languages

    Reduces overall systemcompleity and eliminatesinterdependencies betweensubsystems

    Individual components can

    be added or upgraded withoutimpacting already running software

    ew platforms and

    programming languages can betransparently introduced


    &perationally proven in

    some of the worlds most

    demanding systems

    )eveloped and tested in

    accordance with RTIsrigorous !uality process

    (igh technology readiness

    for mission-critical systems

    %eatures of RTI&s real-time messaging infrastructure

    Available for embedded' mobile and real-time o$erating systems


  • 8/13/2019 Deepak Mathur



    In addition to support for enterprise operating systems such as 4inu,+indows and 7ni, RTIs real-time messaging infrastructure is available forall leading embedded, mobile and real-time operating systems %RT'.

    These include"

    4inu - i89, 9: and /ower/* distributions

    ;reen (ills #oftware - IT0;RIT+orks

    RTI is continually adding support for new platforms, including separationkernels based on the Multiple Independent 4evels of #ecurity %MI4#'architecture.

    Eases a$$lication integration

    RTI eases integration of embedded and mobile applications with eachother, with enterprise applications, and into a #ervice-&riented Architecture%#&A'.

    Applications using RTIs infrastructure are fully interoperable

    across programming languages, operating systems and processortypes

    Application /rogramming Interfaces %A/Is' are available for *, *?

    ?, 2ava %2M# and ))#', .0T and Ada

    Message contents are automatically transformed so that they areinterpreted correctly by applications written in different programminglanguages and running on processors with different native datarepresentations

    RTI keeps in-memory data caches on embedded and mobile

    devices synchroni$ed with enterprise databases

    RTIs messaging infrastructure is easily integrated with enterprise

    middleware including Application #ervers, *omple 0vent/rocessing %*0/' engines, 0nterprise #ervice usses %0#s' and

    visuali$ation platforms

    Su$$orts resource-constrained systems


  • 8/13/2019 Deepak Mathur


  • 8/13/2019 Deepak Mathur



    Applications can automatically discover each other" no

    configuration of hostnames or network addresses is re!uired

    Runs over a wide variety of networ)s

    RTI provides etremely fleible transport support for mobile applicationsand systems deployed outside the enterprise"

    &ut-of-the bo support for 4A, +A, secure %T4#', satellite and

    wireless communication over I/v: and I/v9

    Reliable multicast for efficient broad data distribution #hared memory transport for high-performance inter-process

    communication between components running on the same node

    /luggable interface for integration with other transports, including

    backplanes and switched fabrics, even those without I/ support

    *ell-suited for mission-critical systems

    RTI meets the re!uirements of the most demanding business and mission-critical applications"

    5ault tolerant infrastructure with no single point of failure at either

    the node or system level

    Automatic failover in the event that an application or node fails or bec


    Messages can be simultaneously sent over multiple transports and

    networks for redundancy and partitioning

    #ystem-level introspection for health monitoring and application-

    managed high availability

    Technology proven over @E years in hundred of the worlds most

    demanding and mission-critical applications

    /roducts developed in accordance with RTIs rigorous !uality

    process, with more source code and development time dedicated to3uality Assurance %3A' than to technology development

    Embedded & Mobile Systems operates as a developer o data!ase a"d e#!edded s$ssol%t&o"s t'at retre&ve data ro# dev&(es )e#!edded s$ste#s* !ar (ode s(a""ers* #o!&lse(%rel$ ro%te &"or#at&o" &"to t'e e"terpr&se or #as',%ps* a"al$s&s* das'!oards a"d d

    #a-&"./E#!edded 0 Mo!&le S$ste#s Data!ase sol%t&o"s o(%s o" data etra(t&o"* tra

    load&". )ET+ a"d report&"./ T'&s data!ase e#p'as&s &"(l%des (%sto# appl&(at&o"s or

  • 8/13/2019 Deepak Mathur



    E(el* a"d M$S %s&". S* BA* a"d Perl la" (o#!&"ed &t' (o"vers&o"s

    or#ats/ Mo!&le dev&(e data!ases* Bar(ode &"p%t* a"d &"spe(t&o" or# !ased data!aseo%r spe(&alt&es/

    E#!edded 0 Mo!&le S$ste#s e#!edded s$ste#s develop#e"t e#p'as&7es !r&".,%p a"d start%p o e#!edded s$ste#s : test!e"(' (ode* d&a."ost&(s* !ootloaders* a"d

    a%to#at&o" s(r&pts/ E#!edded plator#s &"(l%de &"%* %,!oot* PoerT set,tops*a"d 8&"dos 9E %s&". "% tool('a&"s or 9;;

  • 8/13/2019 Deepak Mathur



    The Global Positioning System (GPS) is the only fully functionalGlobal Navigation Satellite System (GNSS). The GPS uses aconstellation of at least 24 (32 by March 2!) Me"ium #arth

    $rbit satellites that transmit %recise micro&ave signals' thatenable GPS receivers to "etermine their location' s%ee"'"irection' an" time. GPS &as "evelo%e" by the nite" Statese%artment of efense. *ts official name is N+,ST+-GPS.

    +lthough N+,ST+-GPS is not an acronym/01' a fe&bacronyms have been create" for it/21. The GPS satelliteconstellation is manage" by the nite" States +ir orce thS%ace 5ing.

    S&lar satell&te "av&.at&o" s$ste#s &"(l%de t'e R%ss&a" ASS )&"(o#plete aso 2FF?+* t'e %p(o#&". E%ropea" al&leo pos&t&o"&". s$ste#* t'e proposed

    9MPASS "av&.at&o" s$ste# o 9'&"a* a"d RSS o "d&a/ T'e lo!alPos&t&o"&". S$ste# )PS+ &s t'e o"l$ %ll$ %"(t&o"al lo!al av&.at&o" Satell&te

    S$ste# )SS+/ T'e PS %ses a (o"stellat&o" o at least 24 )32 !$ Mar(' 2FF?+

    Med&%# Eart' r!&t satell&tes t'at tra"s#&t pre(&se #&(roave s&."als* t'at e"a!le

    PS re(e&vers to deter#&"e t'e&r lo(at&o"* speed* d&re(t&o"* a"d te/ PS asdeveloped !$ t'e U"&ted States Depart#e"t o Dee"se/ ts o&(&al "a#e &s

    ASTAR,PS/ Alt'o%.' ASTAR,PS &s "ot a" a(ro"$#G1* a e!a(-ro"$#s 'ave !ee" (reated or &tG2/ T'e PS satell&te (o"stellat&o" &s #a"a.ed

    !$ t'e U"&ted States A&r =or(e 5Ft' Spa(e 8&"./

    Real Time Os

    " (o#p%ter s(&e"(e * real-time computing)RT9+* or Irea(t&ve (o#p%t&".I* &s t'e

    st%d$ o 'ardare a"d sotare s$ste#s t'at are s%!e(t to a Ireal,te(o"stra&"tIJ&/e/* operat&o"al deadl&"es ro# eve"t to s$ste# respo"se/ B$ (o"trast*

    a non-real-time system&s o"e or '&(' t'ere &s "o deadl&"e* eve" & ast respo"se

    or '&.' peror#a"(e &s des&red or preerred/ T'e "eeds o real,te sotare areote" addressed &" t'e (o"tet o real te o operat&". s$ste# * a"d s$"('ro"o%s

    pro.ra##&". la".%a.e * '&(' prov&de ra#eor-s o" '&(' to !%&ld real,te

    appl&(at&o" sotare/

    A real te s$ste# #a$ !e o"e 'ere &ts appl&(at&o" (a" !e (o"s&dered )&t'&"

    (o"tet+ to !e #&ss&o" (r&t&(al / T'e a"t& lo(- !rea-es o" a (ar are a sple ea#ple

    o a real,te (o#p%t&". s$ste# J t'e real,te (o"stra&"t &" t'&s s$ste# &s t'e

    s'ort te &" '&(' t'e !ra-es #%st !e released to preve"t t'e 'eel ro# lo(-&"./

    Real,te (o#p%tat&o"s (a" !e sa&d to 'avefailed& t'e$ are "ot (o#pleted !eoret'e&r deadl&"e* 'ere t'e&r deadl&"e &s relat&ve to a" eve"t/ A real,te deadl&"e#%st !e #et/

    Designing Real-time Software

  • 8/13/2019 Deepak Mathur



    Designing Realtime software involves several steps. The basic steps are

    listed below:

    Software architecture definition

    Co design

    Defining software subsystems

    Feature design

    Task design

    Soft&are +rchitecture efinition

    This is the first stage of Realtime Software design. Here the software team

    understands the system that is being designed. The team also reviews at

    the proposed hardware architecture and develops a very basic software

    architecture. This architecture definition will be further refined in Co-Design.

    Use Cases are also used in this stage to analyze the system. Use cases

    are used to understand the interactions between the system and its users.

    For example, use cases for a telephone exchange would specify the

    interactions between the telephone exchange, its subscribers and the

    operators which maintain the exchange.


    Once the software architecture has been defined, the hardware and

    software teams should work together to associate software functionality to

    hardware modules. The software handling is partitioned between different

    processors and other hardware resources with the following keyconsiderations:

    The software functionality should be partitioned in such a

    fashion that processors and links in the system do not get

    overloaded when the system is operating at peak capacity. This

    involves simulating the system with the proposed software and

    hardware architecture.

    The system should be designed for future growth byconsidering a scalable architecture, i.e. system capacity can be

    increased by adding new hardware modules. The system will not

    scale very well if some hardware or software module becomes a

    bottleneck in increasing system capacity.


  • 8/13/2019 Deepak Mathur



    Software modules that interact very closely with each

    other should be placed on the same processor, this will reduce

    delays in the system. Higher system performance can be achieved

    by this approach as inter-processor message communication

    taxes the CPU as well as link resources.

    This stage is sometimes referred to as Co-Design as the hardware and

    software teams work together to define the final system architecture. This is

    an iterative process. Changes in system architecture might result in

    changes in hardware and/or software architecture.

    The next step in Realtime system design is the careful analysis of thesystem to define the software modules.

    efining Soft&are Subsystems

    1. Determine all the features that the system needs to


    2. Group the various features based on the type of work

    they perform. Identify various sub-systems by assigning one

    subsystem for one type of features. Identify the tasks that willimplement the software features. Clearly define the role of each

    task in its subsystem.

    3. Within each subsystem, classify and group the features

    appropriately and associate the various tasks constituting the

    subsystem. For example, the Call Handling subsystem in Xenon

    would support features like:

    o V5.2 Originating to ISUP Outgoing Call

    o V5.2 Originating to V5.2 Terminating Call

    o Conference Callo Toll free call

    eature esign

    A typical Realtime system is composed of various task entities distributed

    across different processors and all the inter-processor communication takes

    place mainly through messages. Feature Design defines the software

    features in terms of message interactions between tasks. This involvesdetailed specification of message interfaces. The feature design is generally

    carried out in the following steps:


  • 8/13/2019 Deepak Mathur



    1. Specify the message interactions between different tasks

    in the system

    2. Identify the tasks that would be controlling the feature.

    The controlling tasks would be keeping track of progress of

    feature. Generally this is achieved by running timers.

    3. The message interfaces are defined in detail. All the

    fields and their possible values are identified.

    %eature Design +uidelines

    Keep the design simple and provide a clear definition of

    the system composition.

    Do not involve too many tasks in a feature.

    Disintegrate big and complex features into small sub


    Draw message sequence charts for a feature carefully.

    Classify the legs of a scenario for a feature in such a way that

    similar message exchanges are performed by taking the common


    Provide a clear and complete definition of each message

    interface. To check possible message loss, design timer based

    message exchanges.

    Always consider recovery and rollback cases at each

    stage of feature design. One way of doing this is to keep a timer

    for each feature at the task that controls the mainline activity of the

    feature. And then insert the timeout leg in the message sequence

    charts of the feature.

    To avoid overloading of message links choose design

    alternatives that include fewer message exchanges.

    Tas esign

    Designing a task requires that all the interfaces that the task needs to

    support should be very well defined. Make sure all the message parameters

    and timer values have been finalized.

    Selecting t!e Tas) Ty$e

    Once the external interfaces are frozen, select the type of task/tasks that

    would be most appropriate to handle the interfaces:


  • 8/13/2019 Deepak Mathur



    Single State Machine:The tasks functionality can be

    implemented in a single state machine. The v5.2 call task in Xenon

    is a good example of a task of this type.

    Multiple State Machines:The task manages multiple state

    machines. Such tasks would typically include a dispatcher to

    distribute the received messages to an appropriate state machine.

    Such tasks would create and delete state machine objects as and

    when required.

    Multiple Tasks:This type of tasks are similar to the multiple

    state machine tasks discussed above. The main difference is that

    the task now manages multiple tasks. Each of the managed tasks

    implements a single state machine. The manager task is alsoresponsible for creating and deleting the single state machine


    ComplexTask:This type of task would be required in really

    complex scenarios. Here the manager task manages other tasks

    which might be managing multiple state machines.

    Selecting t!e State Mac!ine Design

    After choosing the type of task, the designer should consider dividing the

    message interface handling into a sequence of state transitions. Two

    different type of state machines can be supported:

    Flat State Machines:This is the most frequently used type of

    state transition. For example, the states of a call would be

    "Awaiting Digits", "Awaiting Connect", "Awaiting Release",

    "Awaiting On-hook" etc. This type of state division does not scale

    very well with increasing complexity. For a complex system thistechnique results in a state explosion, with the task requiring

    hundreds of states.

    Hierarchical State Machines:Here the states are viewed as a

    hierarchy. For example the states covered above would map to

    "Originating : Awaiting Digits", "Originating: Awaiting Connect",

    "Releasing : Awaiting Release", "Releasing : Awaiting On-hook".

    The total number of states is the same here, but the main

    difference is that some states inherit from an "Originating" basestate and others inherit from "Releasing" base state. The total

    number of message handlers in each state would be reduced

    drastically, as all the messages that have common handling in all

    the originating states would be just handled in the "Originating"


  • 8/13/2019 Deepak Mathur



    base state. In addition to this, the handlers of inheriting states can

    further refine the base state handling by taking additional actions.

    Tas) Design +uidelines

    Do not complicate the design by introducing too many

    states. Such designs are very difficult to understand. Follow a

    simple rule of thumb, if you are having difficulty choosing the name

    of state, you may have identified the wrong state.

    Do not complicate the design by having too few states. If

    all the states in the system have not been captured in the state

    machine design, you will end up with lot of flags and strange

    looking variables which will be needed to control the message flowin the jumbo states.

    Keep the data-structure definitions simple. See if a

    simpler data-structure would do the same job just as well.

    Out of memory conditions should be handled. Tasks can

    and will run out of memory. So handle the out of memory

    conditions gracefully. This can lead to a lot of "if clutter" so

    consider exception handling as an option.

    All of the legs of the defined scenarios should behandled. This is easier said than done. Many times all the scenario

    legs identified in the feature design stage may not cover all the

    possible error scenarios for your task.

    Make sure that all the allocated resources are de-

    allocated at the end. Again it is very easy to miss out on this one.

    Many times designers forget to release resources in the error legs.

    Consider using a hierarchical state machine to simplify

    the state machine design.

    Consider using Object Oriented programming languages

    like C++. Contrary to popular belief, languages like C++ might turn

    out to be more efficient in runtime performance because of better

    locality of reference. (Most objects would be referring to data that

    is contained in the same object, thus improving the locality of


    T'e #a&" o!e(t&ve o t'e proe(t &s to develop t'e e"a!l&". te('"olo.$ a"d&"rastr%(t%re reC%&red to ee(t&vel$ %se t'e #ost adva"(ed te('"&C%es developed

    or real,te appl&(at&o"s &t' le&!le s('ed%l&". reC%&re#e"ts* &" e#!edded

    s$ste#s des&." #et'odolo.&es a"d tools* prov&d&". t'e "e(essar$ ele#e"ts to tar.etre(o"&.%ra!le pro(ess&". #od%les a"d re(o"&.%ra!le d&str&!%ted ar('&te(t%res/


  • 8/13/2019 Deepak Mathur



    T'e approa(' to a('&eve t'&s #a&" o!e(t&ve &s to &"te.rate adva"(ed le&!les('ed%l&". te('"&C%es d&re(tl$ &"to a" e#!edded s$ste#s des&." #et'odolo.$*

    (over&". all t'e levels &"volved &" t'e ple#e"tat&o"* ro# t'e S pr&t&ves*t'ro%.' t'e #&ddleare* %p to t'e appl&(at&o" level/ T'&s &ll !e a('&eved !$

    (reat&". a (o"tra(t #odel t'at spe(&&es '&(' are t'e appl&(at&o" reC%&re#e"ts &t'

    respe(t to t'e le&!le %se o t'e pro(ess&". reso%r(es &" t'e s$ste#* a"d also 'at

    are t'e reso%r(es t'at #%st !e .%ara"teed & t'e (o#po"e"t &s to !e &"stalled &"to t'es$ste#* a"d 'o t'e s$ste# (a" d&str&!%te a"$ spare (apa(&t$ t'at &t 'as* to a('&eve

    t'e '&.'est %sa.e o t'e ava&la!le reso%r(es/

    T'&s (o"tra(t,!ased #et'odolo.$ reC%&res* or ea(' reso%r(e* a" %"derl$&".

    ple#e"tat&o" t'at &s (apa!le o e"or(&". t'e reservat&o"s pl&ed !$ t'ed&ere"t a(t&ve (o"tra(ts/ T'e (o"tra(ts &ll !e &"te.rated &t' a (o#po"e"t,!ased

    ra#eor-* a"d &ll prov&de t'e reC%&red level o a!stra(t&o" to #a-e t'e

    (o#po"e"t #odel &"depe"de"t o t'e %"derl$&". ple#e"tat&o" a"d 'ardarear('&te(t%re/ T'e ra#eor- &ll !e porta!le a(ross d&ere"t s('ed%l&". strate.&es

    a"d plator#s/ Be(a%se o t'e d$"a#&( "at%re o t'e (o"tra(ts a"d t'e&"depe"de"(e t'at t'e$ prov&de a#o". t'e d&ere"t real,te (o#po"e"ts o t'e

    appl&(at&o"* t'e #et'odolo.$ &s ell s%&ted to address ver$ d$"a#&( s$ste#s* s%('

    as t'ose !ased o" re(o"&.%ra!le ar('&te(t%res/

    E#!edded data!ase

    *ombining in-memory database with storage caching of disk database,ITTIA ) #34%TM' enables application development on embeddedsystems. (ybrid database can contain related data that is divided intomemory and disk tables. Memory tables are optimi$ed to minimi$e */7cycles, while disk tables emphasi$e

    throughput when data is saved to blockdevices. y using solid relational

    model foundation, relationships are navigated with #34 !ueries oraccessed directly with low-level functions.FFFFFFFFFFFFFFFFFFFF

    &ctober G, EBBH - ellevue, +A - 0mbedded devices continuously processinformation from a wide variety of sources, such as sensors, user input,network communications. )evelopers recogni$e cases for whichdata mustbe accessed !uickly with predictable speed and cases for which data mustbe saved continuously to flash media or a hard drive. To address this need,ITTIA unveils the revolutionary new ITTIA ) #34TM hybrid memory and

    disk database for application development on embedded systems anddevices.

    ITTIA ) #34 hybrid combines the fast, predictable performance of an in-memory database with the robust storage caching of a disk database. ITTIA) #34 hybrid delivers capabilities culminated from decades of database


  • 8/13/2019 Deepak Mathur



    evolution in a compact, self-managing package for development ofapplications in consumer electronics, medical devices, portable mediaplayers, network appliances, telecommunication systems, and other

    embedded systems.

    An ITTIA ) #34 hybrid database can contain related data that is dividedinto memory and disk tables. Memory tables are optimi$ed to minimi$e */7cycles, while disk tables emphasi$e throughput when data is saved to blockdevices such as flash media or a hard disk. y usinga solid relational modelfoundation, relationships are easily navigated with #34 !ueries or accesseddirectly with low-level functions.

    All tables share the same transactional database kernel, whether they arestored in memory or on disk. )ata is always accessed through common

    A/Is and can be shared between threads and processes. Transactionsensure the integrity and consistency of the data, but, because the data ismanaged within a single database, without the compleity of distributedtransactions. Modular devices can etend their functionality dynamically byadding new tables and fields to the database.

    )evices and embedded systems that use ITTIA ) #34 benefit fromITTIAs philosophy of fleibility. +hile ITTIA offers several differenteditionsto target the wide variety of re!uirements for database features andfootprint, all ITTIA ) libraries are source, file, and binary-compatible.

    Manufacturers can build a complete line of products that are based on asingle code base for data access. (igh-performancecode can use concise,low-level calls to access and modify individual rows directly. The same datacan also be accessed with high-level #34 !ueries, for interoperability andaccelerated prototyping.

    The hybrid model used by ITTIA ) #34 is ideal for devices that log eventsoccurring at a very high fre!uency. The event log itself maybe storedtemporarily in memory, and related data such as event types, criticalevents, and thresholds can be stored in disk tables that are automatically

    and continuously saved to flash media. The device can monitor and storethe maimum values for each type of event. oth the event log andassociated data can be shared between the logging task, reportingmechanism, user interface, and any other components.

    ITTIA ) #34 hybrid offers developers a broad selection of lightweightR)M# embeddable database features to meet their specific applicationre!uirements, said #asan Montaseri, ITTIA /resident. &ur customersalready benefit from ITTIA ) #34s fleibility, performance at lower cost.The introduction of ITTIA ) #34 hybrid completes this value-added

    offering. +e continue our focus to deliver the highest !uality products andservices at a lower cost.

    A free, B-day evaluation of ITTIA ) #34 is available at the ITTIA )0valuation *enter. The evaluation kit contains a complete embeddeddatabase library, optional server, and #34 tools.


  • 8/13/2019 Deepak Mathur



    About ITTIA

    ITTIA offers a leading-edge embedded R)M# for platforms where limitedmemory, storage, and processing power make software developmentchallenging. ITTIA develops fast, high-performance relational lightweightdatabase products and tools with the goal of providing ecellentdatamanagement software for embedded systems and devices. ITTIAsproducts are designed to be suitable for application development anddeployment at significantly reduced cost. ITTIAs customers include5reescale #emiconductor, /anasonic, /uget #ound 0nergy, oeing, andothers.



    RA9E EMBEDDEDSe(%r&t$ s$ste#s L 'et'er p%re sotare or a (o#!&"at&o" oSe(%r&t$ s$ste#s "eed data!ase 'ardare a"d sotare L #%st store a"d #a"a.e

    (r&t&(alstora.e %st l&-e #a"$ ot'erappl&(at&o"s/ Hoever* t'e

    &"or#at&o" rel&a!l$/ Be(a%se t'ese s$ste#s are a (r%(&al part o t'e

    spe(&al reC%&re#e"ts o t'e se(%r&t$ #ar-et #ea" t'atse(%r&t$ &"rastr%(t%re or e"terpr&ses* t'e$ 'ave %"%s%al

    ve"dors #%st ('oose t'e&r reC%&re#e"ts "ot (o##o" to #a"$ !%s&"ess appl&(at&o"st'at %se data!ase part"er (are%ll$/

    database technology9'oos&". t'e r&.'t data!ase prod%(t (a" &"(rease rel&a!&l&t$* prove peror#a"(e

    a"d e"'a"(e t'e level o se(%r&t$ prov&ded !$ #&ss&o",(r&t&(al deplo$ed s$ste#s/Securing Data from Attac

    Se(%r&t$ &"rastr%(t%re* %st l&-e ot'er appl&(at&o"s* operates o" data L %serpassords* pro&le a"d preere"(es* roles a"d respo"s&!&l&t&es* a((ess lo.s*

    (o"&.%rat&o" sett&".s a"d #ore/ U"l&-e #a"$ !%s&"ess appl&(at&o"s* t'o%.'*se(%r&t$ &"rastr%(t%re prod%(ts #%st !e 'arde"ed a.a&"st atta(-/ As a res%lt* t'e

    (o#po"e"ts t'at #a-e %p t'e se(%r&t$ sotare* &"(l%d&". a"$ data!ase s$ste#*#%st !e des&."ed or se(%re deplo$#e"t/

    Se(%r&t$ t'reats (a" (o#e ro# a "%#!er o ple#e"tat&o" ('o&(es &" sotare/Espe(&all$ (o##o"* t'o%.'* are t'reats d%e to eposed ad#&"&strat&ve or %ser,level

    &"tera(es* '&(' allo a" atta(-er to (o##%"&(ate d&re(tl$ &t' a s%!s$ste# &" t'ese(%r&t$ prod%(t/ Ma"$ data!ase s$ste#s rel$ o" s%(' &"tera(es &" "or#al

    operat&o"/Des&."ers o se(%r&t$ &"rastr%(t%re are ote" !est served !$ ('oos&". a tr%l$

    e#!edda!le data!ase #a"a.e#e"t s$ste#* rat'er t'a" a (o"ve"t&o"al RDBMSdes&."ed or !%s&"ess appl&(at&o"s* or %se &" t'e&r prod%(ts/ A (o##er(&al

    e#!edded data!ase (a" prov&de all t'e peror#a"(e* rel&a!&l&t$ a"d re(overa!&l&t$

    .%ara"tees t'at appl&(at&o"s reC%&re* a"d (a" also prove overall se(%r&t$ !$el&"at&". &"tera(es t'at (o%ld !e %se to (o#pro#&se t'e s$ste#/ra(les a#&l$ o e#!edded data!ase prod%(ts* &"(l%d&". ra(le Data!ase* ra(le

    TesTe" ",Me#or$ Data!ase* ra(le Ber-ele$ DB a"d ra(le Data!ase &te*as des&."ed or %se &" appl&(at&o"s t'at "eed ast* rel&a!le stora.e serv&(es*

    &t'o%t reC%&r&". a data!ase ad#&"&strator/ T'ese prod%(ts (a" !e deplo$ed or


  • 8/13/2019 Deepak Mathur



    7ero or "ear 7ero ad#&"&strat&o"* so t'at t'e$ are &"v&s&!le a"d &"a((ess&!le to %sers

    a"d #al&(&o%s atta(-ers/El&"at&". Pat's o Atta(- T'e splest a$ to se(%re a A (o##o" strate.$ or

    !rea('&". se(%r&t$ &s to se"d !ad data to t'e p%!l&( s$ste# &s to el&"ate pat's t'atatta(-ers (a" %se to &"tera(es o a s$ste# L stole" lo.&" &"or#at&o"* lar.e str&".s

    t'at overlo !%ers* (o#pro#&se &t/

    & ('ara(ters or s$ste# (o##a"ds/ Rat'er t'a" val&date ever$ s&".le &"p%t

    str&".* a spler strate.$ or 'arde"&". s$ste#s &s spl$ to el&"ate t'ose&"tera(es'er/ ra(les e#!edded data!ase prod%(ts (a" 'ave #ost or all o

    t'e&r ad#&"&strat&ve %"(t&o"s 'a"dled pro.ra##at&(all$/ T'&s #ea"s t'at t'ese(%r&t$ appl&(at&o"* rat'er

    t'a" a '%#a" !e&".* (a" ta-e respo"s&!&l&t$ or tas-s l&-e !a(-%ps* ('e(-po&"t&".*

    lo. ar('&val a"d so o"/ B$ re#ov&". t'ese operat&o"s ro# t'e do#a&" o '%#a"s*a"d !$ 'a"dl&". t'e# &"s&de t'e 'arde"ed s$ste#s* t'e data!ase e".&"e #a&"ta&"s a

    '&.' de.ree o overall se(%r&t$/

    " add&t&o"* ra(les e#!edded prod%(ts #a$ .e"erall$ !e (losel$ (o%pled &t' t'edeplo$ed s$ste#/ Rat'er t'a" rel$&". o" "etor-,!ased proto(ols or

    (o##%"&(at&o"* t'ese s$ste#s (a" %se ('a""els lo(al to a s&".le #a('&"e* s%(' ass'ared #e#or$ or eve" %"(t&o",(all &"tera(es &" a s&".le pro(ess* to et(' a"d

    store data/ T'&s #ea"s t'at atta(-ers (a""ot %se t'e data!ase e".&"e as a a$ to

    .a&" a((ess to t'e #a('&"e* s&"(e t'ere are "o "etor- (o##%"&(at&o" ('a""els

    ope" ro# &"s&de t'e data!ase/

    Peror#a"(e* Rel&a!&l&t$* S(ala!&l&t$ (o%rse* se(%r&t$ prod%(ts are ote" (r%(&alp&e(es o &"rastr%(t%re/ As a res%lt* t'e$ #%st !e ast* rel&a!le* a"d a!le to 'a"dle%"epe(ted sp&-es &" de#a"d/

    9'oos&". a" e#!edded data!ase s$ste# or stora.e (a" 'elp/ All o ra(lesdata!ase prod%(ts 'ave a lo". '&stor$ o real,orld deplo$#e"t &" #&ss&o",(r&t&(al

    s$ste#s/ Ea(' del&vers '&.',peror#a"(e data stora.e serv&(es* a"d (a " s%rv&ve

    sotare a"d 'ardare a&l%res &t'o%t los&". &"or#at&o"/

    T'e R&.'t Tool or t'e No!

    ra(les prod%(t l&"e &"(l%des a ra".e o e#!edda!le s$ste#s/ Developers (a"

    ('oose t'e data!ase s$ste# t'at !est #eets t'e reC%&re#e"ts o t'e&r appl&(at&o"/!racle Database

    ra(le Data!ase &s t'e &"d%str$s lead&". e"terpr&se relat&o"al data!ase#a"a.e#e"t s$ste# a"d oers a r&(' eat%re set s%pport&". r&d 9o#p%t&".*

    prov&des '&.'l$ ava&la!&l&t$* a"d etre#el$ rel&a!le data!ase serv&(es or

    tra"sa(t&o" pro(ess&".* data are'o%s&". a"d #a"$ ot'er t$pes o appl&(at&o"s/

    ra(le Data!ase (a" !e pa(-a.ed alo". &t' t'e appl&(at&o" t'at %ses &t* &"stalled

    a"d (o"&.%red s&le"tl$ !$ t'e appl&(at&o"* a"d ad#&"&stered a"d #a"a.ed !$ t'e

    appl&(at&o" (o#pletel$ a%to#at&(all$* &t' "o '%#a" &"terve"t&o"/!racle "imes"en #n-Memory Database

    ra(le TesTe" &s a '&.',peror#a"(e data!ase s$ste# des&."ed or appl&(at&o"s'ere peror#a"(e &s a!sol%tel$ (r&t&(al/ TesTe" .%ara"tees t'at t'e e"t&re

    data!ase res&des &" #e#or$ at all tes* a"d %ses a pate"ted stora.e a"d sear('

    strate.$ to lo(ate &",#e#or$ data C%&(-l$/ TesTe" &s a %ll$ tra"sa(t&o"al*


  • 8/13/2019 Deepak Mathur



    S!ased data stora.e e".&"e* so oers developers a#&l&ar &"tera(es or data


    !racle $ereley D$Ber-ele$ DB &s ra(les o"l$ "o",relat&o"al s%&te o data!ase prod%(ts/ Ber-ele$

    DB prov&des '&.',peror#a"(e B,tree* 'as'* pers&ste"t C%e%e a"d ot'er str%(t%res

    or stor&". pro.ra# data &" &ts "at&ve or#at/ Ber-ele$ DB l&"-s d&re(tl$ &"to t'e

    address spa(e o t'e appl&(at&o" t'at %ses &t/ As a res%lt* t'ere &s "o separate serverto &"stall or ad#&"&ster/

    !racle Database %ite

    ra(le Data!ase &te &s t'e (o#pa"$s e#!edded data!ase s$ste# des&."ed or

    #o!&l&7ed appl&(at&o"s/ ra(le &te oers d&s-,!ased S stora.e serv&(es &" a

    s#all,ootpr&"t pa(-a.e/ Developers (a" also %se t'e S$"('ro"&7at&o" Server to-eep a (olle(t&o" o ra(le &te (l&e"t data!ases s$"('ro"&7ed &t' a (e"tral&7ed

    ra(le Data!ase store/


    ra(le oers a ra".e o data!ase prod%(ts to developers !%&ld&". se(%r&t$ s$ste#s/

    Data #a"a.e#e"t &s at t'e (ore o v&rt%all$ ever$ (o#p%ter s$ste#* &"(l%d&".se(%r&t$ s$ste#s/ T'e %"%s%al reC%&re#e"ts &" se(%r&t$* 'oever* #ea" t'at

    des&."ers #%st (are%ll$ (o"s&der t'e&r opt&o"s 'e" ('oos&". data!ase te('"olo.$

    or deplo$#e"t/ 9o##er(&all$,ava&la!le prod%(ts (a" prov&de o%tsta"d&".

    peror#a"(e* rel&a!&l&t$ a"d s(ala!&l&t$* !%t %"less t'e$ are epressl$ des&."ed or

    e#!edded %se* #a$ (o#pro#&se overall s$ste# se(%r&t$/ra(les a#&l$ o e#!edda!le data!ase prod%(ts L ra(le Data!ase* ra(leTesTe"* ra(le Ber-ele$ DB a"d ra(le &te L oer a ra".e o stora.e serv&(es*

    &" pa( t'at (a" !e eas&l$ deplo$ed &" #&ss&o",(r&t&(al se(%r&t$ s$ste#s/ T'e(o#!&"at&o" o peror#a"(e* rel&a!&l&t$* s(ala!&l&t$ a"d se(%r&t$ t'at ra(le oers

    &s a" porta"t adva"ta.e to ve"dors !%&ld&". prod%(ts &" t'&s spa(e/

    #nformation apliances

    .e"eral ter#s* a" information applianceor information de'ice&s#a('&"e or dev&(e t'at &s %sa!le or t'e p%rposes o (o#p%t&". *

    tele(o##%"&(at&o" * reprod%(t&o" * a"d prese"tat&o" e"(oded "or#at&o" &"

    #$r&ad or#s a"d appl&(at&o"sT'e (o##o" te('"&(al %sa.e o IinformationapplianceI )#A+ &s #ore spe(&&( J &/e/* a" appl&a"(e t'at &s spe(&all$ des&."ed to

    peror# a spe(&&( %"(t&o" Js%(' as pla$&". #%s&( * p'oto.rap'$ /

    T$p&(al ea#ples are s#artp'o"e a"d perso"al d&.&tal ass&sta"t/ "or#at&o"

    appl&a"(es part&all$ overlap &" de&"&t&o" &t'* or are so#etes reerred to as*

    s#art dev&(es* e#!edded s$ste# * #o!&le dev&(es* &reless dev&(es* or'a"d'elddev&(es/

    Pervasive Computing is the main characteristic of the emerging fourth era of computer

    evolution. The paper discusses features of a new generation of intelligent sensor-based

    information appliancesfor distributed heterogeneous real-time applications. Theseappliances


  • 8/13/2019 Deepak Mathur



    will be found in the intelligent homes, offices, automobiles and cities of the future. They will also

    offer higher mobility and convenience to professionals and open new avenues to many industrial

    and health applications.

    1. Introduction

    Since its emergence, some forty years go, computing industry has passed through a rapidsequence of technological phases: central computing/mainframe (1950s-1980s), personal

    computer/PC (1980s-...), computer networks (1990s -...). A fourth era is emerging now, when

    computers become pervasive, i.e. a technology more noticeable by its absence than its presence

    [1], [6], [11], [14], [17], [22], [25].

    The first mass-produced pervasive computing devices are starting to appear. The Clarion

    AutoPC [8] provides an efficient, reliable and secure integrated communications, computing,

    navigation, car control and entertainment system. The NCR Microwave Oven/Home Banking

    Terminal [21] and the Electrolux Internet Connected Screen Fridge [12], allow effortless home


    A good example scenario is given in [16]:

    "Opening the fridge to take out a soda, you may notice that there is only one left. The smart

    fridge recorded that and adds an action item on your shopping list. The next day, as you drive

    home from work, the GPS-enabled AutoPC in your car, previously informed by your fridge

    that purchases need to be made, signals that you are near a supermarket. As you cruise the

    isles of the supermarket, wearing your augmented-reality goggles and your wearable

    computer a soda supply triggers an object recognition program and an alarm reminds you to

    buy soda. The same could be done by your pocket Personal Digital Assistant (PDA) when

    sensing the presence of the soda supply."

    Another pervasive computing example is given in [14]:

    ,age "Your intelligent car develops an engine problem, but instead of flashing you a warning

    light it sends a message directly to the manufacturer over a wireless connection to the

    network. The manufacturer's systemsdiagnose the problem and transmit a fix back to the

    electronics complex in your car. In fact, that corrective fix is transmitted to all modelseverywhere in the world, without ever having to notify the owners. .... Instant

    informationon performance is captured and sent immediately into product development

    and manufacturing. "

    The recently announced Cisco Internet Home, a 170 square-meter living space, has almost

    all house appliances(refrigerator, microwave oven, internet-based phone, television,

    computer, Web cams, wireless touch-pads, health maintenance devices, ...) connected to

    Internet through a Residential Gateway. Cisco SystemsInc. wants to prove that "... the

    Internet is the next utility in the home, and, within three to five years, will be as pervasive as

    gas, water or electricity."

    Electric servoappliancesare a good example of pervasive technology [4], [6]. The average

    North American home contains two dozen or more electric motors. A multitude of sensors is

    gathering the informationneeded to control them. As all these are buried inside many appliances(vacuum cleaners, microwave ovens, refrigerators, VCRs, etc.) we have difficulty identifying

    them and we actually don't care where and how many they are as long as they are doing their job.

    In the future, the same will be true with computers, most of which will be hidden in information

    appliances[22]. These new appliancesare "smart devices" embeddedwith microprocessors that

    allow users to plug into intelligent networks and gain direct, simple, and secure access to both

    relevant informationand services. These devices are as simple to use as calculators, telephones

    or kitchen toasters. Pervasive Computing envisions the "networkedhome" where domestic

    devices can interact seamlessly with each other and with in-home and external networks. Using

    the existing home infrastructure based on open industry standards, a person will be able to

    integrate the home network with external networks to easily manage home devices, both locally

    and remotely.

    Recent progress in computer, integrated circuit, and communications technologies allows theuse of complex algorithms from various domains (such as signal and image processing, system

    identification, modelling, control, and AI). It becomes also possible to implement user friendly

    virtual environments for the development of an ever growing diversity of real-time intelligent

    sensing applications ranging from Computer Integrated Manufacturing (CIM) to smart homes

    and offices [15], [18], [23].

    Early digital and computer-based instrumentation architectures and communications standards


  • 8/13/2019 Deepak Mathur



    asHP-IB (IEEE 488) represented embryonic smart sensing solutions supporting the first

    generation of computer based industrial applications. Microprocessor controlled sensors and

    virtual instrumentation integration environments such asLabView, together with wireless and

    Internet communications, allowed to develop a large variety of embeddedindustrial applications.

    The advent of pervasive computing marks an urgent need for a new generation of intelligentsensing agents and information appliancesas well as for related resource management

    ,age .environments to be used in a broader selection of applications involving loosely coupled, event-

    driven, heterogeneous information appliances.

    The aim of this paper is to discuss development scenarios for intelligent sensor environments

    and pervasive computer architectures able to support a new generation of information appliances

    for distributed heterogeneous real-time applications.

    2. Sensor-based information appliances

    While the smart networkedhome is a very good first example, the development of intelligent

    sensing agents and sensor-based information applianceswill spread the pervasive technology

    ideas to a multitude of human activities such as mining and manufacturing, security industry,transportation, training and health etc. It is not exaggerate to claim that this technology, when

    integrated with the emerging global informationinfrastructure, will have a profound impact on

    our personal and professional activities, and will open business opportunities, of a similar or

    even higher scale than what we are experiencing presently with the Internet.

    As their perception, intelligence and networking abilities grow, the electricappliancesare

    evolving into information appliances representing the next, information-intensive, evolutionary

    stage for the pervasive computing paradigm. Donald Norman makes a compelling argument in

    [22] for the informationappliance paradigm that he sees as being "the natural successor to

    today's [computer] complexity ... through the user-centered, human-centered, humane technology

    of applianceswhere the technology of the computer disappears behind the scenes into task-

    specific devices that maintain all the power without the difficulties." The business model for this

    disruptive technology shifts from the technology-driven computer industry to the consumer-driven model of the consumer appliance industry. Lower profit margins are to be expected from

    high volumes of consumable devices, services and content.

    The nature of pervasive information appliancesrequires that the developed architectures

    should distributed rather than centralized. These applianceswill provide a seamless intelligent

    connection of the perception to action, [7]. These new developments point to a new type of

    intelligent control based on a multisensory perception of the state of the controlled process and

    its environment [7], [10]. The use of multiple sensors is beneficial in improving the accuracy, the

    cost and robustness of the perception process. World models, built and maintained from

    informationgathered by a multitude of sensors, provide a common abstract representation of the

    state of the environment. At the perception level, the world model is analyzed to infer

    relationships between different objects.

    Sensor architectures integrating bothproprioceptors (sensors monitoring the internal state of

    information appliances) and exteroceptors (sensors monitoring the state of the environment

    outside the informationappliance) using sensor-models and world-models will provide superior

    modularity, interchangeability ("plug and play") and transparence. All these will eventually

    allow for easier sensor fusion and knowledge extraction.

    ,age /Intelligent task-directed informationgathering features will allow for a more elastic and

    efficient use of the inherently limited sensing and processing capabilities of each sensor. Each

    task a sensor has to carry out determines the nature and the level of the informationthat is

    actually needed. Sensors should be able of selective environment perception that focuses on

    parameters important for the specific task at hand and avoid wasting effort to process irrelevant

    data. A task-specific decision making process will guide the incremental refinement of the

    environment model.

    Informationappliance should be able to learn and adapt their behavior to changes in their

    working environment including other appliancesas well as human users. Such adaptability is

    already provided by the smart habitat controls of some cars which offer an automatic adjustment

    of the seat, mirrors, and drive wheel's column tilt to accommodate every driver's preference.

    These appliancesshould also be able to deal with multiple redundant communication carriers


  • 8/13/2019 Deepak Mathur



    (Intranet, Internet, power lines, wireless, infrared, etc.).

    Some of the specific objectives for the development of these sensor based information


    (i) design of hybrid deliberative/reactive architectures integrating deliberative reasoning and

    behavior-based control functions [5];(ii) design of model-based multi-sensor fusion systemsable to integrate a variety of sensors

    that cover all four phases in the environment perception process: far away, near to, touching, and


    (iii) study of new task-directed sensor fusion and learning methods for an active perception,

    which will allow the informationappliance to gather informationby interaction with the


    (iv) design of redundant multi-carrier communication systems.

    3. "Symbiont" intelligent appliances

    Human-computer interaction (HCI) is a well-established field of computer science and

    engineering [1]-[3], [24]. The advent of the embeddedcomputing systemsled to a system

    integration approach to HCI design which is quite well summarized by the following quote from

    [2]:"Instead of workstations, computers may be in the form of embeddedcomputational

    machines, such as parts of spacecraft cockpits or microwave ovens. Because the techniques

    for designing these interfaces bear so much relationship to the techniques for designing

    workstations interfaces, they can be profitably treated together."

    As the era of pervasive computing commences, portable wireless PDAs or wearable

    computers will be widely used [4], [19], [20] and [25].

    There are applications such as remote sensing, environment monitoring, and telerobotics for

    hazardous operating environments requiring very complex monitoring and control processes.

    Many of these applications cannot be fully automated. Human operator expertise is still

    needed to carry out tasks requiring a higher level of intelligence. In such cases, human operators

    ,age 0and intelligent sensing systemsare called to work together assymbionts, each contributing the

    best of their specific abilities, as illustrated in Figure 1. A proper control of these operations

    cannot be accomplished without some telepresence capability allowing the human operator to

    experience the feeling that he/she is virtually immersed in the working environment.

    Figure 1: Human operators and sensor-based applianceswork together as symbionts, each

    contributing the best of their specific abilities. HCI (Human Computer Interaction)

    interfaces provide a telepresence capability allowing the human operator to

    experience the feeling that he/she is virtually immersed in the working environment.

    Appropriate geometric-, force-, and touch-domain human-feedback devices will have to be

    developed in addition to the currently available visual and sound HCI devices.

    ,age 1In order to find efficient solutions to the complex perception tasks, thesesymbiont intelligent

    appliances will have to combine their intrinsic reactive-behavior with higher-order world model

    representations of the immersive virtual reality systems.

    4. Management of heterogeneous functions for a large diversity of information appliances

    Pervasive computing environments involve both human-machine and machine-machine

    interaction and cooperation paradigms. The discussion will concentrate on machine-machine


    We are all familiar with human-to-human communication and cooperation, which require a

    common language and an underlying system of shared knowledge and common values. In order

    to achieve a similar degree of machine-machine interaction and cooperation, a framework should

    be developed to allow for the management of heterogeneous functions and knowledge for a large

    diversity of pervasive computing devices.

    Such a framework should address the communication needs of pervasive devices at a higherlevel than the classical communication network protocols and even distributed computing

    frameworks such as CORBA (Common Object Request Broker Architecture) which provide

    mainly distribution transparency. Heterogeneous pervasive computing devices cannot

    realistically be expected to talk exactly the same language. However, these devices will share

    domain-specific knowledge, which may be expressed by each of them in different format/dialect.

    Accordingly, the proposed management framework should define a domain specific semantic for


  • 8/13/2019 Deepak Mathur



    common knowledge and functions. This framework is expected to act as a universal translator

    between different dialects.

    In order to provide a flexible extensible open framework allowing for the information

    appliancesinteroperability, methods should be developed to allow different devices to exchange

    the grammars describing their own dialects and to learn to understand each other. This way, thedevices will be able to advertise their own functions, search and discover providers of required

    services, and express their needs in a collaborative environment.

    Going beyond its original scope to interchange structured documents conveniently over the

    Internet, XML (Extensible Markup Language), [13] and [26], could provide high level protocols

    for exchanging informationbetween different information appliances. XML provides a syntax

    for building a formal model known as a DTD (Document Type Definition), which describes

    relationships between entities, elements and attributes of each class of documents related to a

    certain application domain. Since a DTD gives a standard format for informationrelated to a

    specific domain, it can be used to simplify the exchange of informationbetween different

    sources which refer to the same domain regardless of the internal format used by each source.

    Many kinds of domains have standard DTDs, as for example chip manufacturers, chemical

    applications, etc. XML could also be developed to facilitate the interoperability of informationappliances.

    Figure 2 illustrates the main communication processes an informationappliance is supposed

    to manage.

    ,age 2Figure 2: Information appliancesshould interact in an unobtrusive way with humans, other

    appliancesand the rest of the world while carrying on their specific task in their

    physical environment. World models, built and maintained from informationgathered

    by a multitude of sensors, provide a common abstract representation of the state of

    the environment. A hybrid deliberative/reactive architecture integrates the

    deliberative reasoning and behavior-based control functions. A distributed computing

    frameworks together with high level informationexchange mechanisms provide aflexible extensible open framework allowing for the information appliances

    interoperability. Special communication mechanisms will allow the information

    appliance to handle a variety of redundant and complementary informationchannels.

    5. Networking technologies for pervasive information appliances.

    As a very large number of devices will be connected through infrared and radio wireless and

    wire-line global networks infrastructure, existing technologies will be rendered inefficient; new

    solutions have to be invented.

    Bandwidth and resource limitations of the wireless medium require that informationcontent is

    compressed as much as possible, in order to consume the least amount of resource possible.

    ,age 3However, such low redundancy makes the informationvulnerable, especially in an error-proneenvironment such as wireless channels and networks.

    Personal Area Network (IEEE 802.15) and existingLocal and Wide Area Network (e.g. IEEE

    802.11),Internet Protocols (Mobile IP, IPv6, RTP/RTCP, RSVP, XTP etc.), Wireless

    Application Protocol (WAP) are already available. However, it is expected that the size and

    complexity of the problem would require the development of new technologies and standards

    when developing a new Distributed Networks Architectures (DNA) suitable for the support of

    pervasive computing at a large scale.

    The development should address wired and wireless networking issues looking for the

    development of cost-effective solutions for environments where deployment of advanced

    networking infrastructure could be unjustifiably costly. The following appear to be of an

    immediate interest:

    Service admission control and connection establishment policies, as well as resource

    allocation and resource adaptation algorithms for the support of pervasive devices.

    Quality of Service capable, error-resilient and resource allocation-efficient multiple-access

    protocols for the efficient transportation of sensor traffic.

    Intelligent networking infrastructure and definition of suitable architectures of distributed


    Cost -effective network solutions for environments where there is no advanced networking


  • 8/13/2019 Deepak Mathur



    infrastructure deployment.


    This work was funded in part by Communications and InformationTechnology Ontario

    (CITO) and the Natural Sciences and Engineering Research Council (NSERC) of Canada.

    References1. *** "A Brief History of Wearable Computing,"

    2. ***, "Human-Computer Interaction Bibliography,"

    3. ***, "Human-Computer Interaction Resources,"

    4. ***, "Special Issue on Information Appliances,"IEEE Computer Graphics and Applications

    Magazine, May/June 2000.

    5. R.C. Arkin,Behavior-Based Robotics, The MIT Press, 1998

    6. J. Birnbaum, "Pervasive Information Systems", Communications of the ACM, Vol. 40, No.2,

    pp. 40-41, Feb. 1997

    7. A. Brooks, L.A. Stein, "Building Brains for Bodies", Autonomous Robots, Vol. 1, No.1, pp.

    7-25, 19948. Clarion Corp., "Auto PC ,", 1999

    9. P. Dabke, "Enterprise Integration via CORBA-Based InformationAgents", IEEE Internet

    Computing, vol. 3, no. 5, pp. 49-57, Sept-Oct. 1999

    ,age 410. B.V. Dasarathy, "Sensor Fusion Potential Exploitation Innovative Architectures and

    Illustrative Applications," Proc. IEEE, Vol. 85, No. 1, pp. 24-38, Jan. 1997

    11. M.L.Dertouzos, "The Future of Computing", Scientific American, 52, pp.52-55, Aug. 1999

    12. Electrolux Inc., "Electrolux screen Fridge", ,


    13. L.M. Garshol, "Introduction to XML,"

    14. L. Gerstner, "Pervasive Computing" , Keynote -CeBIT 98,

    15. M. Hardwick, D.L. Spooner, T. Rando, K.C. Morris, "Data Protocols for the Industrial

    Virtual Enterprise,"IEEE Internet Computing, vol. 1, no. 1, pp. 20-29, Jan-Feb. 1997

    16. A.C. Huang, B. Ling, S. Ponnekanti, and A. Fox. "Pervasive Computing: What Is It Good

    For?" Workshop on Mobile Data Management (MobiDE) in conjunction with ACM

    MobiCom 99

    17. IBM, "What is Pervasive Computing",

    18. R. Itschner, C. Pommerell, M. Rutishausser, "Glass: Remote Monitoring of Embedded

    Systemsin Power Engineering,"IEEE Internet Computing, vol. 2, no. 3, pp. 46-52, May-

    June. 1998

    19. S. Mann, "Wearable Computing: A First Step Toward Personal Imaging", IEEE Computer,30 (2), Feb. 1997

    20. S. Mann, "Humanistic Computing: WearComp as a New Framework and Application for

    Intelligent Signal Processing," Proc. IEEE, Vol. 86, No. 11, pp. 2123-2151, Nov. 1998

    21. NCR Corp., "NCR Microwave Oven / Home Banking,"

    22. D.A. Norman, The Invisible Computer: Why Good Products Can Fail, the Personal

    Computer Is so Complex, andInformation AppliancesAre the Solution, The MIT Press,


    23. C.M. Pancerella, N.M. Berry, "Adding Intelligent Agents to Existing EI Frameworks," IEEE

    Internet Computing, vol. 3, no. 5,pp. 60-61, Sept-Oct. 1999

    24. R.W. Picard, "Human-Computer Coupling," Proc. IEEE, Vol. 86, No. 8, pp. 1803-1807,

    Aug. 1998

    25. B. Rhodes, "Context-Aware Computing (or, why context needs wearables and wearables

    need context),"

    26. World Wide Web Consortium (W3C), "Extensible Markup Language (XML) 1.0,"


  • 8/13/2019 Deepak Mathur



    T%tor&al: Des&."&". real,te a"d saet$,(r&t&(al e#!edded

    Nava appl&(at&o"s , Part 2Sot Real,Te Nava Develop#e"t %&del&"es

    B$ Kelv&" &lse"* Ao"&



  • 8/13/2019 Deepak Mathur



    Rule () *se the +a'a Standard Edition platform

    T'e !e"e&ts t'at Nava !r&".s to sot real,te #&ss&o",(r&t&(al

    s$ste#s are #ost releva"t to lar.e* (o#ple* d$"a#&(appl&(at&o"s/ S&"(e t'e N2ME plator# represe"ts a"

    &"(o#pat&!le s%!set o %ll NSE* &t does "ot prov&de a((ess to

    NSE,sta"dard 9TS l&!rar$ (o#po"e"ts/ appl&(at&o"s

    reC%&re e"terpr&se ed&t&o" (apa!&l&t&es* o!ta&" t'e spe(&&(

    e"terpr&se ed&t&o" l&!rar&es t'at are reC%&red a"d r%" t'e# o" a

    sot real,te NSE plator#/ Alter"at&vel$* r%" t'e reC%&red

    e"terpr&se ed&t&o" %"(t&o"al&t$ o" trad&t&o"al )"o" real,te+NM plator#s '&(' (o##%"&(ate &t' t'e sot real,te

    NM #a('&"es %s&". RM or ot'er "etor-&". proto(ols/

    Rule ,) $aseline a particular 'ersion of the +SE libraries

    =or a"$ .&ve" develop#e"t proe(t* &t &s porta"t to

    sta"dard&7e o" a part&(%lar vers&o" o t'e NSE l&!rar&es/ As

    Sta"dard Ed&t&o" Nava 'as evolved* ea(' "e release adds "e(apa!&l&t&es a"d epa"ds #e#or$ ootpr&"t reC%&re#e"ts/

    Ea(' "e release also depre(ates )or re#oves+ (erta&"

    (apa!&l&t&es '&(' are repla(ed &t' "eer sol%t&o"s/ $o%

    are or-&". o" a lar.e proe(t or '&(' sotare #a&"te"a"(e

    #%st spa" #a"$ $ears* $o% pro!a!l$ a"t to sele(t a (erta&"

    Sta"dard Ed&t&o" plator# a"d ree7e t'at ('o&(e/ t'er&se*

    $o% &ll e"d %p #a-&". #a"$ %""e(essar$ ('a".es to $o%r

    (ode !ase %st to #a&"ta&" (o#pat&!&l&t$ &t' t'e ever

    ('a".&". de&"&t&o" o t'e Nava plator#/ Do(%#e"t t'&s

    de(&s&o" to all developers a"d #a"a.ers/

    Rule ) .ollow /best practices/ recommendations for +a'a


    T'e sotare C%al&t$ #eas%res are ver$ s&lar or sot real,

    te Nava a"d trad&t&o"al Nava/ U"less spe(&&ed to t'e

    (o"trar$* ollo t'e a((epted .%&del&"es or r&t&". porta!le

    a"d #a&"ta&"a!le NSE (ode/


  • 8/13/2019 Deepak Mathur



    Rule 0) *se +.ace and S1" for graphical user interfaces

    Most #&ss&o",(r&t&(al sotare does "ot reC%&re .rap'&(al %ser

    &"tera(es/ sot real,te s$ste#s do reC%&re .rap'&(al %ser&"tera(es* %se t'e ope",so%r(e S8T a"d N=a(e l&!rar&es

    &"stead o t'e propr&etar$ A8T a"d S&". (o#po"e"ts/ S8T

    a"d N=a(e r%" &" less #e#or$ a"d r%" aster t'a" S8T a"d


    Rule 2) *se cooperating hard real-time components to

    interface with nati'e codeT'e N proto(ol &"trod%(es s&."&&(a"t data #ars'all&".

    over'ead 'e" o!e(ts are s'ared !etee" t'e Nava a"d "at&ve

    e"v&ro"#e"t/ =%rt'er#ore* t'e s'ar&". proto(ols #a$ epose

    Nava o!e(ts a"d Ipr&vateI v&rt%al #a('&"e data str%(t%res to

    %"d&s(&pl&"ed 9 (o#po"e"ts* &"trod%(&". t'e r&s- t'at

    #&s!e'av&". 9 (ode &ll (o#pro#&se t'e &"te.r&t$ o t'e

    v&rt%al #a('&"e e"v&ro"#e"t/

    Eper&e"(e o e&st&". (%sto#ers &" several real proe(ts

    &"volv&". '%"dreds o #a" $ears o develop#e"t do(%#e"t

    t'at t'ese r&s-s are real* 'av&". (ost develop#e"t tea#s

    s&."&&(a"t eort a"d (ale"dar te to (orre(t errors

    &"trod%(ed &"to t'e Nava e"v&ro"#e"t !$ 9 developers r&t&".

    N (o#po"e"ts/ Better peror#a"(e a"d stro".er separat&o"

    o (o"(er"s &s real&7ed !$ ple#e"t&". all &"tera(es to "at&ve

    (ode as (ooperat&". 'ard real,te (o#po"e"ts as de&"ed !$

    t'e 'ard real,te RTSN pro&le/

    Rule 3) *se cooperating hard real-time components with

    performance-critical code

    t'e t'ro%.'p%t o (erta&" sot real,te (o#po"e"ts &s "ot

    s%&(&e"t to #eet peror#a"(e reC%&re#e"ts* ple#e"t t'e

    reC%&red %"(t&o"al&t$ as (ooperat&". 'ard real,te

    (o#po"e"ts as de&"ed !$ t'e 'ard real,te RTSN pro&le/

    Be(a%se t'e (ode .e"erat&o" #odel or 'ard real,te


  • 8/13/2019 Deepak Mathur


  • 8/13/2019 Deepak Mathur


    EMBEDDED SYSTEM :DEEPAK MATHUR libraries:So#e e#!edded tar.ets 'ave "o "ot&o" o

    std&"* stdo%t* or stderr/ So#e e#!edded tar.ets 'ave "o "ot&o"

    o "o",volat&le &le stora.e/ libraries:So#e e#!edded tar.ets 'ave "o "etor-


    Re(o."&7e t'at t'e %se o t'ese l&!rar&es #a$ l&t t'e

    porta!&l&t$ o (ode a"d #a$ (o"tr&!%te to t'e %t%re

    #a&"te"a"(e !%rde"/

    Rule 6) #solate +7M dependencies

    E&st&". sot real,te v&rt%al #a('&"es d&er &" 'o t'e$

    s%pport (erta&" porta"t #&ss&o",(r&t&(al (apa!&l&t&es/ 8rap

    all NM depe"de"(&es &" spe(&al (lasses t'at (a" !e .&ve"

    etra atte"t&o" & t'e (ode #%st !e ported to a d&ere"t NM/

    Spe(&&( serv&(es t'at reC%&re t'&s 'a"dl&". &"(l%de:

    A8H&.',pre(&s&o" t&". serv&(es: o!ta&"&". real,te &t'

    .reater pre(&s&o" t'a" 1 #s dr&t,ree sleep)+* a&t)+* a"d

    o&")+ serv&(es/

    $89PU,te a((o%"t&".: Ho #%(' 9PU te (o"s%#ed !$

    ea(' t'readQ Ho #%(' 9PU te &s (o"s%#ed at ea('pr&or&t$ levelQ

    8ar!a.e (olle(t&o" pa(&".: Ho to #o"&tor t'e #e#or$

    allo(at&o" !e'av&or o t'e appl&(at&o" sotare a"d t'e

    ee(t&ve"ess o 9Q Ho to s('ed%le 9 to #a&"ta&" pa(e

    &t' allo(at&o" ratesQ

    D8S('ed%l&".: a v&rt%al #a('&"e oers '&.',level

    s('ed%l&". s%pport* s%(' as earl&est,deadl&"e &rst or #a%#


  • 8/13/2019 Deepak Mathur



    a((r%ed %t&l&t$ s('ed%l&".* t'e s('ed%l&". a"d s$"('ro"&7at&o"

    serv&(es s'o%ld !e &solated &t'&" a (e"tral&7ed AP/

    Rule (9) arefully select an appropriate soft real-time

    'irtual machine

    "e o t'e #ost porta"t de(&s&o"s &" deter#&"&". t'e

    s%((ess o a sot real,te Nava develop#e"t eort &s sele(t&o"

    o a s%&ta!le NM/ Ea(' develop#e"t proe(t 'as %"&C%e

    reC%&re#e"ts a"d (o"stra&"ts* so &t #a$ !e "e(essar$ to

    &"depe"de"tl$ eval%ate t'e releva"(e o var&o%s ava&la!lev&rt%al #a('&"e prod%(ts or ea(' develop#e"t eort/ "

    sele(t&". a v&rt%al #a('&"e* (o"s&der at #&"%# ea(' o t'e

    ollo&". &ss%es:

    A8Real,Te .ar!a.e (olle(t&o" s'o%ld 'ave a #a%#

    pree#pt&o" late"($ a"d s'o%ld !e &"(re#e"tal so t'at 'e"

    t'e .ar!a.e (olle(tor &s pree#pted !$ '&.'er pr&or&t$appl&(at&o" t'reads* &t (a" res%#e &t' t'e "et &"(re#e"t o

    or- 'e" t'e appl&(at&o" t'read rel&"C%&s'es t'e 9PU/

    $8T'e .ar!a.e (olle(tor s'o%ld dera.#e"t t'e 'eap &" order

    to ass%re rel&a!le lo".,r%""&". operat&o" or s'o%ld prov&de

    so#e alter"at&ve #e('a"&s# to avo&d rel&a!&l&t$ pro!le#s

    res%lt&". ro# ra.#e"tat&o" o t'e 'eap/ A"d &t #%st

    a((%ratel$ re(la all dead #e#or$ rat'er t'a" re(la&".

    o"l$ a (o"servat&ve approat&o" o t'e dead #e#or$/

    =&"all$* &t #%st !e pa(ed to ass%re t'at #e#or$ &s re(laed at

    rates (o"s&ste"t &t' t'e appl&(at&o"@s stead$,state de#a"d or

    "e #e#or$ allo(at&o"/

    8All s$"('ro"&7at&o" lo(-s #%st ple#e"t pr&or&t$

    &"'er&ta"(e/ All a&t C%e%es #%st !e ordered a((ord&". to

    t'read pr&or&t&es/


  • 8/13/2019 Deepak Mathur



    D8T'e v&rt%al #a('&"e "eeds to prov&de #o"&tor&". a(&l&t&es

    to allo s%perv&sor$ t'reads to o!serve a"d #eas%re t'e real,

    te reso%r(e reC%&re#e"ts o &"d&v&d%al (o#po"e"ts/ A#o".reC%&red (apa!&l&t&es are t'e a!&l&t$ to deter#&"e 'o #%('

    9PU te &s (o"s%#ed !$ part&(%lar t'reads* 'o #%(' 9PU

    te &s (o"s%#ed !$ t'e .ar!a.e (olle(t&o" t'read)s+* t'e rates

    at '&(' part&(%lar t'reads are allo(at&". #e#or$* a"d t'e

    total a#o%"t o #e#or$ !e&". reta&"ed as l&ve/

    E8Deter#&"e t'e release level o t'e N2SE l&!rar&es reC%&redor a part&(%lar proe(t a"d ass%re t'at t'e ve"dor &s a!le to

    s%pport t'e des&red l&!rar$ vers&o" t'ro%.'o%t t'e d%rat&o" o

    $o%r develop#e"t proe(t/

    .8Ass%re t'at t'e v&rt%al #a('&"e prov&des l&!rar&es or '&.',

    pre(&s&o" te #eas%re#e"ts* a"d or dr&t,ree a&t)+* o&")+*

    a"d sleep)+ serv&(es/

    G8Ass%re t'at t'e v&rt%al #a('&"e &s s%pported !$ appropr&ate

    A'ead,o,Te (o#p&lat&o" a"d l&"-&". tools & t'e s$ste# &s

    stat&(all$ (o#p&led a"d loaded/

    :8 t'e s$ste# #%st d$"a#&(all$ load (o#po"e"ts* ass%re

    t'at t'e d$"a#&( (lass loader (a" !e (o"&.%red to r%" at loerpr&or&t$ t'a" t'e o".o&". real,te appl&(at&o" or-load/

    #8 t'e d$"a#&( (lass loader #%st peror# NT (o#p&lat&o"*

    ass%re t'at t'e NT (o#p&ler (a" !e (o"&.%red to s%pport l&"-&". a"d tra"slat&o"* #ea"&". t'at all (o#po"e"ts are

    %ll$ resolved a"d tra"slated 'e" t'e &rst o t'e

    &"terdepe"de"t #od%les &s loaded* rat'er t'a" deerr&". NT

    tra"slat&o" %"t&l t'e #o#e"t ea(' (ode #od%le &s &rst

    ee(%ted/ So#e s$ste#s "eed to d$"a#&(all$ load (o#po"e"ts

    '&(' ere t'e#selves a'ead,o,te (o#p&led/ er&$ t'&s


  • 8/13/2019 Deepak Mathur



    (apa!&l&t$ &s s%pported & releva"t to $o%r proe(t


    +8Ass%re t'at t'e v&rt%al #a('&"e &"(l%des "e(essar$

    develop#e"t tools* &"(l%d&". s$#!ol&( de!%..&". o !ot'

    &"terpreted a"d (o#p&led (ode a"d r%",te peror#a"(e a"d

    #e#or$ %sa.e pro&l&"./

    ;8Ass%re t'at t'e v&rt%al #a('&"e &"(l%des s%pport or

    (ooperat&". 'ard real,te Nava (o#po"e"ts & t'e pla""eddevelop#e"t proe(t #a$ reC%&re &"te.rat&o" &t' (ooperat&".

    'ard real,te (o#po"e"ts/

    Embedded JavabyVincent Perrier


    Java's strong appeal for embedded applications is sometimes offset by concerns about its speed and its memoryrequirements !o"ever# t$ere are tec$niques t$at you can use to boost Java performance and reduce memory needs#and of course t$e Java virtual mac$ine you c$oose affects Java performance# too %ou can ma&e betterinformed

    decisions about using Java by understanding t$e factors t$at affect its performance and selecting meaningfulbenc$mar&s for embedded applications

    (ec$niques for improving application e)ecution and c$oosing t$e rig$t Java virtual mac$ine *JV+, address only a fe"aspects of system arc$itecture t$at affect overall Java performance -$en selecting an embedded Java platform# you

    must ta&e into account a $ost of ot$er factors# beyond t$e scope of t$is article# t$at $ave an impact on performance.mong t$em are $ard"are processor selection# Java compatibility and supported .Ps# application reliability and

    scalability# t$e c$oice of a realtime operating system *(, "it$ associated native libraries and drivers# t$eavailability of Java development tool &its and middle"are# grap$ics support# and t$e ability to put t$e application code

    into +

    nce you've selected a $ard"are and soft"are development platform# t$ere are a variety of factors to consider t$at "ill$elp you c$oose t$e bestperforming Java virtual mac$ine *JV+, for your application

    Java Is Big and Slow: Myth or Reality?.lt$oug$ t$e average Java bytecode application e)ecutes about ten times more slo"ly t$an t$e same program "rittenin 3 or 344# $o" "ell an application is "ritten in Java can $ave a tremendous impact on performance# as a study byut6 Prec$elt# 73omparing Java vs 3/344 fficiency 9ifferences to nterpersonal 9ifferences7 *3ommunications of t$e

    .3+# ctober 1:::,# $as s$o"n n t$e study# ;8 programmers "ere as&ed to "rite t$e same application program ineit$er 3/344 or Java .pplying statistical analysis to t$e performance data for t$e programs revealed t$at actual

    performance differences depended more on t$e "ay t$e programs "ere "ritten t$an on t$e language used ndeed#

  • 8/13/2019 Deepak Mathur



    t$e study s$o"ed t$at a "ell"ritten Java program could equal or e)ceed t$e efficiency of an averagequality 3/344


    Various approac$es are available for boosting bytecode e)ecution speed ($ey include using a to ;2

    +? of .+ in addition to t$e application's requirements ($e large memory requirement places J( compilers out ofreac$ for many categories of embedded applications

    .$eadoftime compilers rival J( compilers in increasing Java e)ecution speed @nli&e J( compilers# t$ey're usedbefore t$e application is loaded onto t$e target device# as t$eir name indicates ($at eliminates t$e need for e)tra.+# but it creates t$e need for more + or flas$ memory *t$at is# storage static memory,# because compiled

    mac$ine code requires four to five times t$e memory of Java bytecode 3ompiling a$ead of time tends to undermineone of t$e great benefits of t$e Java platform because a measure of dynamic e)tensibility can be lost# since it may not

    be possible to do"nload ne" versions of compiled classes .dditionally# any dynamically loaded code# li&e an applet#"on't benefit from a$eadoftime compilation and "ill e)ecute more slo"ly t$an resident compiled code

    Profiling Java code# alt$oug$ some"$at comple)# can $elp minimi6e code e)pansion "$en you're using an a$eadoftime compiler . good goal is to compile only t$at 20 percent of t$e Java classes in "$ic$ t$e application spends 80

    percent or more of its time

    9ynamic adaptive compilers offer a good compromise bet"een J( and a$eadoftime compilers *see (able 1, ($ey'resimilar to J( compilers in t$at t$ey translate bytecode into mac$ine code on t$e fly 9ynamic adaptive compilers#

    $o"ever# perform statistical analysis on t$e application code to determine "$ere t$e code merits compiling and "$ereit's better to let t$e JV+ interpret t$e bytecode ($e memory used by t$is type of compiler is userconfigurable# so you

    can evaluate t$e tradeoff bet"een memory and speed and decide $o" muc$ memory to allocate to t$e compiler


  • 8/13/2019 Deepak Mathur


  • 8/13/2019 Deepak Mathur



    %ou can trim J2+ by eliminating classes and code components t$at aren't needed for your application ($e JV+#

    native libraries# core classes# and application bytecode go into + JV+s for embedded applications generally rununder 500 &?# "$ereas class libraries for J2+ typically don't e)ceed 15 +? Java components t$at affect .+

    requirements include t$e JV+ *for bytecode e)ecution,# t$e potential dynamic compiler# t$e Java $eap# and t$e numberof t$reads *t$e latter t"o obviously depend on t$e application, )ecuting as muc$ of t$e application as possible using

    an interpreter "$ile maintaining acceptable e)ecution performance $elps contain t$e memory footprint

    electing a $ig$ly scalable operating system and 3runtime pac&age allo"s you to tune t$ese soft"are

    components for optimal memory efficiency calingt$e Java environment can be comple)# $o"ever

    @sually# a t"ostage process is involved Cirst# youcan use t$e command line verbose option#

  • 8/13/2019 Deepak Mathur



    Measuring !ppliation Performane

    -$en considering a benc$mar& to determine t$e overall performance of a Java application# bear in mind t$at bytecodee)ecution# native code e)ecution# and grap$ics eac$ play a role ($eir impact varies depending on t$e nature of t$e

    specific applicationE "$at t$e application does# $o" muc$ of it is bytecode versus native code# and $o" muc$ use itma&es of grap$ics !o" "ell a JV+ "ill perform for a given application depends on $o" t$e unique mi) of t$ese t$ree

    functional areas maps onto its capabilities Fiven t$ese variables# t$e best "ay to benc$mar& a JV+ is against youro"n application ince t$at's not possible before t$e application $as been "ritten# you must find t$ose benc$mar&s

    t$at are most relevant to t$e application you intend to "rite

    orting t$roug$ Java benc$mar&s to find t$e ones t$at are relevant for embedded applications can be confusingpecJV+:8# for e)ample# provides a relatively complete set of benc$mar&s t$at test diverse aspects of t$e JV+ounds good but pecJV+:8 runs in a client/server environment and requires a minimum of B8 +? of .+ on t$e

    client side for t$e JV+ ($at e)cludes it from any relevance to most embedded applications n addition# it can't beused "it$ precompiled classes

    t$er benc$mar&s $ave different pitfalls Volano+ar for e)ample# is a c$at server implementation and is t$ereforerelevant only for benc$mar&ing applications "it$ t$e same set of requirements as c$at servers ($e J+ar& benc$mar&assumes t$at t$e application includes t$e applet vie"er and a full implementation of Java's .bstract -indo"ing (ool&it

    *.-(, ($is benc$mar& can be irrelevant for t$e many embedded applications t$at $ave no grap$ics or $ave limitedgrap$ics t$at don't require full .-( support# suc$ as devices running a PersonalJava minimal.-( implementation

    mbedded 3affeine+ar& *3+,# t$e embedded version of t$e 3affeine+ar& benc$mar& from Pendragon oft"are *it

    $as no grap$ics tests,# is easy to run on any embedded JV+# since it requires support for basic Java core classes only#and it doesn't require a large amount of memory +ore importantly# t$ere's a $ig$ correlation bet"een good scores on

    t$is benc$mar& and improved bytecode performance in embedded applications

    (o get t$e most meaningful results from 3+# you must use e)actly t$e same $ard"are "$en testing different JV+s

    %ou must also pay attention to implementation differences among t$e JV+s you're testing f# for e)ample# you'recomparing a JV+ "it$ a J( compiler against a JV+ "it$out one# it's important to run t$e JV+ t$at $as t$e J( "it$ t$e

  • 8/13/2019 Deepak Mathur



    -ind iver's Personal J-or&s includes a good benc$mar& for evaluating grap$ics performance in embedded systems

    ($e benc$mar& targets t$e PersonalJava .-( "it$ a set of ;: tests of images# buttons# scrolling# te)t# and basic 29grap$ics

    Real#$orld Performane

    Cinally# you need to consider t$e performance of your [email protected] (o $elp you identify [email protected] performance# you s$ouldsupplement simple benc$mar&s by running real"orld applications t$at e)ercise large amounts of different# comple)

    Java code uc$ test code must meet a number of requirementsE t s$ould contain a large number of classes t$atreflect an estimate of t$e real application *20plus is a good ballpar&, t must also be large *t$ousands of lines# at

    least, and $ave no file system access and no grap$ics ome e)isting programs meet all t$ose criteria ($e [email protected] e)pression pac&age# rege)p# for e)ample# comprises about ;#000 lines of code and more t$an 21 classes#providing a large number of e)pressions to parse and matc$ .not$er program# t$e ?ean $ell interpreter# is a simple

    prime number sieve t$at $as G0 classes and several t$ousand lines of code Java3ode3ompact# un's PersonalJava+i6ing tool# also "ould ma&e a good test program

    ($e result of running t$ese programs as test cases illustrates t$e "ide variance in t$e meaning of benc$mar& scoresCor e)ample# a JV+ using a J( compiler may run mbedded 3affeine+ar& up to ;0 times faster t$an "$en t$e no

Top Related