At its most primitive level, _______ is a set of instructions for hardware written in machine language.
software
At a higher level, there are _______ and higher level programming _______. There are frameworks, tools, and other methods of abstracting various aspects of software design that help us achieve one central goal: to handle complexity of software more reliability and faster.
assemblers, languages
The biggest problem with software design and implementation is ______ that leads into buggy systems, high cost of development, and long development cycles, and the existence of programming languages, frameworks, and other development tools is primarily to solve this very problem of software _________.
complexity
(T/F) Abstraction reduces complexity
True
(T/F) Frameworks and tools for mobile application development are evolving based on the growth of architectural techniques and innovations that accommodate the dimensions of mobility.
True
Developing fully centralized mobile applications differs from other fully centralized applications by __________.
virtue of QOS, limited power supply, active transactions, and location awareness
____________ typically have custom-designed clients to perform specific tasks.
Fully centralized mobile applications
__________ are not a concern in software development: The abilities of the client are known beforehand.
Resources of the device and Platform Proliferation
___________, in most fully centralized systems, is achieved as an integral part of the network system or hardware-based location information on the client device
Location sensitivity
Therefore, three of the dimensions of mobility—namely platform ____________ —do not apply to fully centralized applications.
proliferation, limited device capabilities, and support for a variety of user interfaces
(T/F) Fully centralized mobile applications are about a monolithic layer of software from the client to the server with very little software on the client. What software resides on the client is typically embedded, or at least highly coupled to the device, in nature.
True
(T/F) Fully centralized mobile applications are the right solutions for applications that require little to no flexibility in changing the requirements of the client over the lifetime of the application and that have large development and deployment budgets allowing for custom-designed hardware and embedded software.
True
__________ allow us to enable communication between two applications with one application acting as the server and the other acting as the client.
Client–server architectures
For mobile applications, the _______ may have special needs, but it is typically powerful enough to run a wide range of applications.
server
(T/F) Writing large applications for the devices to serve as the client is typically not possible, primarily because of the limited resources on the devices and the large variety of them.
True
__________, in the case of mobile development, are typically those being run on mobile devices
Client applications
The state of the art, as of the date of authoring this text, in proven distributed computing systems are the ____________.
N-tier client–server architectures
One of basic problems of application development that is magnified in mobile environments is ___________.
code portability and mobility
The primary goal of Sun’s Java Virtual Machine and Microsoft’s Common Language Run-time is to give code more _________ across platforms.
portability
We can have some homogeneous browser specifications and implement the browsers for each device in a client–server environment. The browser can then load markup code and render it or even load plug-ins.
Thin-Client Wireless Client–Server
The client application on the mobile device may be a custom application. If so, this thick client may communicate with the server, with the client executing some tasks and the server executing the others. Stationary client–server architectures using thick clients typically use the client as a means of storing a small subset of the data for use of the application when disconnected from the network and performing business logic that does not need to be centralized. Having thick clients for mobile devices is a bit more difficult.
Thick-Client Wireless Client–Server
(T/F) Client–server architectures that rely on a thick client require a full-blown development platform for the device.
True
We can build stand-alone applications for the devices using those same platforms that we mentioned for the thick-client client server-based systems. The only difference here is that stand-alone applications do not really need networking components.
Stand-alone Applications
_____ as a programming language offers the most portable commercial environment for writing software applications.
Java
The success of Java has been mostly in providing standard _________, a very thoughtfully designed infrastructure for OOP that prohibits many bad design and implementation habits such as multiple inheritance.
Application Program Interfaces (APIs)
Java three distinct features:
object oriented programming language
offers complete code mobility
platform
Java, as a platform and programming language, offers mobile code. But, the standard ___________ was designed for desktop computers and requires far too many resources for the typical cell phone, PDA, or mobile device.
Java Virtual Machine
______ is a specification for a virtual machine and some accompanying tools for resource-limited devices.
J2ME
This portion of J2ME is called CLDC for Connected, Limited Device Configuration. These types of devices includecellphones,PDAs,and other small consumer devices
Personal, mobile, connected information devices
CDC,or Connected Device Configuration, a superset of CLDC, Internet-enabled appliances,mobile computers installed in cars, and similar systems are in this group.
Shared, fixed, connected information devices
Features not offered on KVM:
Floating point arithmetic
Support for JNI
Thread grouping
Full-blown exception handling
Automatic garbage collection of unused objects
Weak references
________ is one of the most troublesome and complicated features for providers of mobile application frameworks and tools.
Security
______ does not provide the full J2SE security model and provides a sandbox model. It also provides a very limited and yet sufficient set of APIs to read and write and lastly, it provides a connection framework to provide basic networking capabilities
CLDC
CLDC’s input/output (I/O) package allows internationalization in two ways:
Dynamic
Static
The program can determine the required character set dynamically and use the proper character set at run time.
Dynamic
The __________ is currently the only widely known and accepted CLDC profile.
Mobile Information Device Profile (MIDP)
There are three packages, namely java.lang.∗, java.io.∗, and java.util.∗, that are inherited from the J2SE environment.
J2SE-like APIs
A small set of classes provides I/O and networking capabilities particularly needed by small and mobile devices. The package holding these classes is javax.microedition.io..
CLDC-specific APIs
The main class that the J2ME application developers must familiarize themselves with is the ________ class.
connector
Applications for MIDs (Mobile Information Devices) are appropriately called _______.
MIDlets
_______ are treated as components controlled by a framework under the inversion of the control principle.
MIDlets
This is the overtool that provides a GUI to manage collecting the classes that are put into the MIDlet, any name-value property sets that are used by the classes, and any resources such as icons used by the MIDlet.
KToolbar
preverification of classes allows J2ME to offload some work from the device.
Preverifier
The J2ME ________ compiles the classes.
compiler
The _________ tool allows the developers to adjust for the virtual machine proficiency, network performance, storage monitoring, and network traffic monitoring.
Preferences
Once the code is compiled, you will run a file in one of the emulators.
.jad
(T/F) A JAR file can have one or more MIDlets.
True
The ________ (a text file that specifies the classes that are in the JAR file along with some attributes for those classes) is used by the MIDP environment to recognize and install the applications.
JAR manifest file
(T/F) There is no treatment of location awareness in J2ME.
True
(T/F) Because CLDC/MIDP applications are components run by a virtual machine and within a tightly controlled sandbox, writing an active application is a difficult task.
True
(T/F) J2ME offers a very good treatment of dimensions of mobility
True
______ is the document format of choice when it comes to ubiquitous applications; .
XML
These parsers go through the entire XML document and create some representation of the document in a programmatic model.
Model Parsers
These parsers emit events as they parse through the document.
Push Parsers
Pull parsers do not go through the entire document. Rather, they leave the control on how much of the document is parsed to the client.
Pull Parsers
Three types of parsers
model parsers
push parsers
pull parsers
_______ can be used in representing the life cycles of the various objects.
State diagrams
______ is a general tool and its use can be subjective when applied to specific things like various APIs and platforms.
UML
CLDC can have a variety of profiles built on top of it, CDC profiles are built on top of the so-called _________.
Foundation Profile
The CDC has its own virtual machine, the ________
CVM (C Virtual Machine)
The most significant classes eliminated from the CDC/Foundation Profile are the ________
GUI classes
(T/F) The architecture of CDC simply modularizes the functionality of J2SE into multiple profiles, allowing the vendors and application developers to only use the part of the Java platform that they need while still having the full functionality of a full-blown Java Virtual Machine in CVM.
True
A ________ is a card that has an embedded processor or some type of electronic memory device able to store data, interface with some known set of devices, and allow the stored data to be retrieved.
smart card
This is the most common type of smart card. These types of cards hold a small amount of data (less than 4 kB) and have no processing power.
IC (Integrated Circuit) Memory Cards
These cards typically have 16 kB or less of read-only memory andhalf of kilobyte of random-access memory
IC Microprocessor Cards
These cards provide the largest amount of storage of all smart cards. Though they do not provide any processing power, they can be very useful since they hold up to 4 MB of data.
Optical Memory Cards
Java Card has its own virtual machine, the ___________
Java Card Virtual Machine (JCVM)
The __________ allows various resources to be identified in a generic manner on the server side; however, it is far too heavy for implementation on mobile devices
Java Naming and Directory Interface (JNDI)
Java, gives us _________, a base technology for ad-hoc networking. It provides lookup services and its own discovery protocol.
Java Intelligence Network Infrastructure (JINI)
This is a JINI service that maps interfaces indicating the functionality offered by a service to sets of objects that implement the service.
Lookup
The act of finding lookup services is called ______
discovery
The various JINI participants can register to listen to the various ______ emitted by the other JINI participants.
Events
JINI devices share resources through a process called _______. This term is used because the amount of time for which the service is available to the lessee is known in advance, at the time of the lease.
Leasing
For a JINI device to offer its services to other devices, it first has to join the JINI federation.
Joining
Interactions between the various JINI devices may be compound, being made of several simple atomic interactions. Because of this, __________ is needed to ensure the proper semantics are provided to avoid partial results and bad data.
Transaction Management
______ is a peer-to-peer protocol and part of the Java platform
JXTA
_____ provides an actual protocol for those peers to send messages back and forth to one another.
JXTA
Some or all of the peers connect to the other peers through a proxy called a _____. This proxy, sometimes also referred to as a ______, violates the trueness of a peer-to-peer architecture if it lives outside of the device.
relay, surrogate
Built directly into the hardware. It is offered as an API to access the CDMA, GSM/GPRS, or UMTS chip sets that provide the support for it. But, it is primarily intended for the variations of CDMA, a technology owned and licensed by Qualcomm.
BREW(Binary Run-time Environment for Wireless)
Also referred to as BREW applets, are written in C though some support for C++ is provided and, using code generation or virtual machine technologies, other languages such as Java can be supported.
BREW applications
Every BREW module, defined as the classes that make up one or more BREW applications, has an associated __________ that are required.
Module Information File (MIF)
This is a stand-alone application that allows developers to make up their own handset by configuring a vanilla mobile phone and specifying the behavior of the keys, the look and feel of the screen, and other specifics of the device.
BREW Device Configurator
For those who have designed and implemented any mobile application,it is obvious that one of the most difficult steps in the development process is the incremental unit testing.
BREW Emulator
There is an image authoring tool that allows creation of images for BREW.
BREW Image Authoring Tool
Many mobile devices are based on the ARM or StrongARM hardware platform. This enables the BREW developers to compile their code for the mobile devices that carry the ARM-based technologies.
BREW ARM Compiler
This tool allows the developer to deploy an application on a handset through a PC connector.
BREW AppLoader
The ______ tool provides the developer a mechanism to generate a test Class ID.
TestSig
The ______ uses the Class 3 Certification from Verisign to authenticate and sign an application.
AppSigner
(T/F) Everything in BREW is event driven.
True
(T/F) Because mobile devices vary greatly in the features that they offer, it is difficult to build a virtual machine or an operating system that allows full usage of all of the functionality of these devices.
True
An ___________ is the master control program that enables the hardware by abstracting it to the application via drivers.
operating system
This is a tool set separate from Visual Studio, the typical development environment for PC-based Windows applications. It allows for authoring mobile applications in C++.
Embedded Visual C++
This tool provides the ability to write applications using Visual Basic. Visual Basic applications can be developed faster but do not offer the developer the ability to tune and optimize the application for resource starved mobile devices.
Embedded Visual Basic
The _____ application programming platform, the newest set of tools for building Microsoft Windows-based applications, can be complemented with a set of extensions that allow developers to author .NET applications for mobile devices.
.NET
Allows a significant amount of control over the look and feel of GUI applications designed for the Stylus and the small user interface.
eMbedded Visual C++
(T/F) Windows CE utilizes a protected memory architecture.
True
Something that we should not overlook before moving on is the ability to use an asynchronous messaging model to communicate with the network. This is possible through the use of ______________.
Microsoft Messaging Queuing (MSMQ)
(T/F) CEDB is typically a better solution for most applications on most devices because it occupies fewer resources than the MS SQL Server for Windows CE.
True
.NET Web services are based on two key technologies:
WSDL (Web Services Definition Language)
SOAP (Simple Object Access Protocol)
The __________ provides some interesting controls that are designed based on sophisticated user interfaces but are small for the screen of a mobile phone. An example is the “Roll-over” box.
Smart Phone SDK
The single framework most used in building mobile applications today. It is intended to be as pervasive for wireless and mobile applications as HTTP has been for the Web, never achieved the level of success initially expected.
Wireless Application Protocol (WAP)
Intended for thin clients and is built on its own lower level communication protocol.
Wireless Application Protocol (WAP)
In HTTP, this markup language was HTML; in WAP 1.x, it is WML, the ____________.
Wireless Markup Language
Also referred to as bearer networks, like to have control of every single incoming and outgoing bit of data that travels on their network.
Wireless carriers
(T/F) WAP is a complete framework for mobile applications
True
Adheres to a client–server architecture with implementation standards for the client that interpret content, the communication mechanisms between the clients and the servers, and additional required features in the servers, particularly proxy servers.
Wireless Application Protocol (WAP)
(T/F) The difference between a proxy and a gateway is that a client determines when it will use a proxy.
True
(T/F) WAP-enabled devices do have the ability to change their proxy settings; however, this feature is typically disabled from access by the user by the network provider or the device manufacturer as it can circumvent billing mechanisms.
True
WAP is responsible for:
Security
Network Access
Protocol Conversion
Caching
The WAP gateway provides a secure handoff point between __________ to external security mechanisms.
WTLS (Wireless Transport Layer Security)
MMS presentation is handled through __________ which is an XML-based language that allows one to specify the temporal behavior of various components of a multimedia message.
This proxy server acts as an intermediary between MMS clients and other messaging systems or MMS clients.
MMS proxy-relay
This interface would support any protocol supported by various Internet-based e-mail systems such as SMTP, POP, IMAP, and others.
Standard e-mail interface
The MMS proxy-relay can be hosted in the same environment or is a part of the _________ to facilitate sending of the message.
Push Proxy Gateway (PPG)
Refers to sending a piece of content to the mobile device without the user explicitly requesting the particular content.
Push (from Push Access Protocol)
A Push operation is accomplished by allowing a ____________ to transmit Push content and delivery instructions to a PPG, which then delivers the Push content to the WAP client.
Push Initiator (PI)
One of the most powerful and popular platforms for mobile development, was created jointly by Ericsson, Nokia, Panasonic, Psion, Samsung Electronics, and Siemens.
Symbian
(T/F) Symbian started as an operating system that supported primarily C++, but it evolved to providing support for Java as well.
True
(T/F) Symbian,as an operating system, has been designed for wirelessly connected devices.
True
(T/F) Cocoon’s framework is written in Java though the processing components can be written in a variety of languages including ASP, Java, and XSL.
True
_________ have been used, in the context of network computing applications such as the Web, to create multiple views of the same document for the users.
Publishing frameworks
(T/F) Cocoon’s architecture aims to separate content from style (the formatting of content), logic (how content is generated or chosen), and management of content (the process of creating content and everything else that goes with it)
True
______ is typically used as an XML-based publishing framework; however, it is flexible enough to deal with any type of input and to generate any type of output. It is a “black-box” framework
Cocoon
Cocoon is a framework that employs the principle of ___________.
inversion of control
These components transform the raw content into other content.
Transformers
These components provide the output for our black box from the transformed content provided to them by the transformers.
Serializers
These components provide us with a method to feed data into our black box. It give us a hook to pull the raw content into Cocoon.
Generators
An _________ aggregates various pieces of content.
aggregator
(T/F) Because Cocoon is a Web-based application, an interaction with Cocoon is initiated through an HTTP request.
True
This particularly important generator creates another generator, at compile time, which knows what type of scripting language is used in the XSP page (if one is used for generation) so that it compiles the XSP page properly.
Server pages generator
This generator is peculiar in that it creates a series of SAX events with the data encapsulated in the incoming HTTP request.
Request generator
It allows usage of JSP pages as the source of dynamic data.
JSP generator
The _______ is a file where the instructions that form the pipelines and the definition of Cocoon components are outlined using an XML-based syntax.
sitemap
________ that come with Cocoon allow one to make lexical pattern matches using Regular Expressions on the URI, HTTP request parameters, and HTTP session parameters.
Matchers
The _______ that come with Cocoon allow one to select the pipeline based on browser type, HTTP header parameters in the request,HTTP session parameters, or environment parameters.
selectors
_____ are used to feed dynamic content into a generator component. It can use a variety of programming languages such as Java in the form of JSP.
XSPs
Define a set of custom tags usable in an XSP document in addition to the programming language used for scripting.
logic sheets or tag libraries
(T/F) Though Cocoon is primarily used for publishing markup languages understood by browsers, to solve the problems with mobile user interfaces in particular, it can be used to publish XML that is further modified and indirectly used to produce a userinterface
True
________ is IBM’s commercial product to satisfy the needs of those in need of a publishing framework, plus some complementing utilities, to create mobile applications.
IBM Wireless Transcoding Publisher (WTP)
It is an integrated environment with IBM’s Websphere Application Server and supports J2EE applications.
Wireless Everyplace Suite
Addresses issues related to wireless connectivity, content management for wireless clients, wireless security, provisioning and device management, and integration with the IBM Websphere application suite of products. It also includes integration with IBM’s messaging platforms, allowing for asynchronous communication.
IBM Everyplace Suite
(T/F) WTP is more focused on providing development tools and integration with the other IBM products to deliver a total solution whereas Cocoon provides a more flexible and extensible infrastructure for publishing content for mobile applications.
(T/F) Asynchronous messaging systems are highly scalable, lending themselves to networks that have to serve the exchanging of messages among millions of different devices.
True
(T/F) Asynchronous messaging allows us to treat both the connected and the disconnected devices.
True
It is an open-source project managed by Tigris.org. As in the case of all other open-source projects, the price is right. It is free. Despite its bug-ridden inception, it has become much more stable and clean.
ArgoUML
_______ is the leading provider of tools for UML-based development. Rational is the most sophisticated of UML tools.
Rational Software
It is written in Java so you can develop on any platform that you want. It is not an open-source piece of software, but it is very extensible by offering scripting in Python, the standard UML extension mechanisms, as well as having an easily modifiable graphical widget set.