At its most primitive level, _______ is a set of instructions for hardware written in machine language.
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.
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 _________.
(T/F) Abstraction reduces complexity
(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.
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 speciﬁc 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
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.
(T/F) Fully centralized mobile applications are the right solutions for applications that require little to no ﬂexibility 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.
__________ allow us to enable communication between two applications with one application acting as the server and the other acting as the client.
For mobile applications, the _______ may have special needs, but it is typically powerful enough to run a wide range of applications.
(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.
__________, in the case of mobile development, are typically those being run on mobile devices
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 magniﬁed 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.
We can have some homogeneous browser speciﬁcations 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 difﬁcult.
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.
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.
_____ as a programming language offers the most portable commercial environment for writing software applications.
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
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 speciﬁcation for a virtual machine and some accompanying tools for resource-limited devices.
This portion of J2ME is called CLDC for Connected, Limited Device Conﬁguration. These types of devices includecellphones,PDAs,and other small consumer devices
Personal, mobile, connected information devices
CDC,or Connected Device Conﬁguration, a superset of CLDC, Internet-enabled appliances,mobile computers installed in cars, and similar systems are in this group.
Shared, ﬁxed, connected information devices
Features not offered on KVM:
Floating point arithmetic
Support for JNI
Full-blown exception handling
Automatic garbage collection of unused objects
________ is one of the most troublesome and complicated features for providers of mobile application frameworks and tools.
______ does not provide the full J2SE security model and provides a sandbox model. It also provides a very limited and yet sufﬁcient set of APIs to read and write and lastly, it provides a connection framework to provide basic networking capabilities
CLDC’s input/output (I/O) package allows internationalization in two ways:
The program can determine the required character set dynamically and use the proper character set at run time.
The __________ is currently the only widely known and accepted CLDC proﬁle.
Mobile Information Device Proﬁle (MIDP)
There are three packages, namely java.lang.∗, java.io.∗, and java.util.∗, that are inherited from the J2SE environment.
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..
The main class that the J2ME application developers must familiarize themselves with is the ________ class.
Applications for MIDs (Mobile Information Devices) are appropriately called _______.
_______ are treated as components controlled by a framework under the inversion of the control principle.
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.
preveriﬁcation of classes allows J2ME to ofﬂoad some work from the device.
The J2ME ________ compiles the classes.
The _________ tool allows the developers to adjust for the virtual machine proﬁciency, network performance, storage monitoring, and network trafﬁc monitoring.
Once the code is compiled, you will run a ﬁle in one of the emulators.
(T/F) A JAR ﬁle can have one or more MIDlets.
The ________ (a text ﬁle that speciﬁes the classes that are in the JAR ﬁle along with some attributes for those classes) is used by the MIDP environment to recognize and install the applications.
JAR manifest ﬁle
(T/F) There is no treatment of location awareness in J2ME.
(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 difﬁcult task.
(T/F) J2ME offers a very good treatment of dimensions of mobility
______ is the document format of choice when it comes to ubiquitous applications; .
These parsers go through the entire XML document and create some representation of the document in a programmatic model.
These parsers emit events as they parse through the document.
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.
Three types of parsers
_______ can be used in representing the life cycles of the various objects.
______ is a general tool and its use can be subjective when applied to speciﬁc things like various APIs and platforms.
CLDC can have a variety of proﬁles built on top of it, CDC proﬁles are built on top of the so-called _________.
The CDC has its own virtual machine, the ________
CVM (C Virtual Machine)
The most signiﬁcant classes eliminated from the CDC/Foundation Proﬁle are the ________
(T/F) The architecture of CDC simply modularizes the functionality of J2SE into multiple proﬁles, 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.
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.
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 identiﬁed 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.
The act of ﬁnding lookup services is called ______
The various JINI participants can register to listen to the various ______ emitted by the other JINI participants.
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.
For a JINI device to offer its services to other devices, it ﬁrst has to join the JINI federation.
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.
______ is a peer-to-peer protocol and part of the Java platform
_____ provides an actual protocol for those peers to send messages back and forth to one another.
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.
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.
Every BREW module, deﬁned 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 conﬁguring a vanilla mobile phone and specifying the behavior of the keys, the look and feel of the screen, and other speciﬁcs of the device.
BREW Device Conﬁgurator
For those who have designed and implemented any mobile application,it is obvious that one of the most difﬁcult steps in the development process is the incremental unit testing.
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.
The ______ tool provides the developer a mechanism to generate a test Class ID.
The ______ uses the Class 3 Certiﬁcation from Verisign to authenticate and sign an application.
(T/F) Everything in BREW is event driven.
(T/F) Because mobile devices vary greatly in the features that they offer, it is difﬁcult to build a virtual machine or an operating system that allows full usage of all of the functionality of these devices.
An ___________ is the master control program that enables the hardware by abstracting it to the application via drivers.
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.
Allows a signiﬁcant 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.
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.
.NET Web services are based on two key technologies:
WSDL (Web Services Deﬁnition 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.
(T/F) WAP is a complete framework for mobile applications
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.
(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.
WAP is responsible for:
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.
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.
(T/F) Symbian started as an operating system that supported primarily C++, but it evolved to providing support for Java as well.
(T/F) Symbian,as an operating system, has been designed for wirelessly connected devices.
(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.
_________ 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.
(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)
______ is typically used as an XML-based publishing framework; however, it is ﬂexible enough to deal with any type of input and to generate any type of output. It is a “black-box” framework
Cocoon is a framework that employs the principle of ___________.
inversion of control
These components transform the raw content into other content.
These components provide the output for our black box from the transformed content provided to them by the transformers.
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.
An _________ aggregates various pieces of content.
(T/F) Because Cocoon is a Web-based application, an interaction with Cocoon is initiated through an HTTP request.
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.
It allows usage of JSP pages as the source of dynamic data.
The _______ is a ﬁle where the instructions that form the pipelines and the deﬁnition of Cocoon components are outlined using an XML-based syntax.
________ that come with Cocoon allow one to make lexical pattern matches using Regular Expressions on the URI, HTTP request parameters, and HTTP session parameters.
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.
_____ 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.
Deﬁne 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 modiﬁed and indirectly used to produce a userinterface
________ 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 ﬂexible 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.
(T/F) Asynchronous messaging allows us to treat both the connected and the disconnected devices.
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.
_______ is the leading provider of tools for UML-based development. Rational is the most sophisticated of UML tools.
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 modiﬁable graphical widget set.