Ch02 - Introduction to Mobile Development Frameworks and Tools

  1. At its most primitive level, _______ is a set of instructions for hardware written in machine language.
  2. 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
  3. 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 _________.
  4. (T/F) Abstraction reduces complexity
  5. (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.
  6. Developing fully centralized mobile applications differs from other fully centralized applications by __________.
    virtue of QOS, limited power supply, active transactions, and location awareness
  7. ____________ typically have custom-designed clients to perform specific tasks.
    Fully centralized mobile applications
  8. __________ are not a concern in software development: The abilities of the client are known beforehand.
    Resources of the device and Platform Proliferation
  9. ___________, 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
  10. 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
  11. (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.
  12. (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.
  13. __________ 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
  14. For mobile applications, the _______ may have special needs, but it is typically powerful enough to run a wide range of applications.
  15. (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.
  16. __________, in the case of mobile development, are typically those being run on mobile devices
    Client applications
  17. 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
  18. One of basic problems of application development that is magnified in mobile environments is ___________.
    code portability and mobility
  19. The primary goal of Sun’s Java Virtual Machine and Microsoft’s Common Language Run-time is to give code more _________ across platforms.
  20. 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
  21. 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
  22. (T/F) Client–server architectures that rely on a thick client require a full-blown development platform for the device.
  23. 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
  24. _____ as a programming language offers the most portable commercial environment for writing software applications.
  25. 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)
  26. Java three distinct features:
    • object oriented programming language
    • offers complete code mobility 
    • platform
  27. 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
  28. ______ is a specification for a virtual machine and some accompanying tools for resource-limited devices.
  29. 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
  30. 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
  31. 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
  32. ________ is one of the most troublesome and complicated features for providers of mobile application frameworks and tools.
  33. ______ 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
  34. CLDC’s input/output (I/O) package allows internationalization in two ways:
    • Dynamic
    • Static
  35. The program can determine the required character set dynamically and use the proper character set at run time.
  36. The __________ is currently the only widely known and accepted CLDC profile.
    Mobile Information Device Profile (MIDP)
  37. There are three packages, namely java.lang.∗,∗, and java.util.∗, that are inherited from the J2SE environment.
    J2SE-like APIs
  38. A small set of classes provides I/O and networking capabilities particularly needed by small and mobile devices. The package holding these classes is
    CLDC-specific APIs
  39. The main class that the J2ME application developers must familiarize themselves with is the ________ class.
  40. Applications for MIDs (Mobile Information Devices) are appropriately called _______.
  41. _______ are treated as components controlled by a framework under the inversion of the control principle.
  42. 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.
  43. preverification of classes allows J2ME to offload some work from the device.
  44. The J2ME ________ compiles the classes.
  45. The _________ tool allows the developers to adjust for the virtual machine proficiency, network performance, storage monitoring, and network traffic monitoring.
  46. Once the code is compiled, you will run a  file in one of the emulators.
  47. (T/F) A JAR file can have one or more MIDlets.
  48. 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
  49. (T/F) There is no treatment of location awareness in J2ME.
  50. (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.
  51. (T/F) J2ME offers a very good treatment of dimensions of mobility
  52. ______ is the document format of choice when it comes to ubiquitous applications; .
  53. These parsers go through the entire XML document and create some representation of the document in a programmatic model.
    Model Parsers
  54. These parsers emit events as they parse through the document.
    Push Parsers
  55. 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
  56. Three types of parsers
    • model parsers
    • push parsers
    • pull parsers
  57. _______ can be used in representing the life cycles of the various objects.
    State diagrams
  58. ______ is a general tool and its use can be subjective when applied to specific things like various APIs and platforms.
  59. CLDC can have a variety of profiles built on top of it, CDC profiles are built on top of the so-called _________.
    Foundation Profile
  60. The CDC has its own virtual machine, the ________
    CVM (C Virtual Machine)
  61. The most significant classes eliminated from the CDC/Foundation Profile are the ________
    GUI classes
  62. (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.
  63. 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
  64. 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
  65. These cards typically have 16 kB or less of read-only memory andhalf of kilobyte of random-access memory
    IC Microprocessor Cards
  66. 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
  67. Java Card has its own virtual machine, the ___________
    Java Card Virtual Machine (JCVM)
  68. 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)
  69. Java, gives us _________, a base technology for ad-hoc networking. It provides lookup services and its own discovery protocol.
    Java Intelligence Network Infrastructure (JINI)
  70. This is a JINI service that maps interfaces indicating the functionality offered by a service to sets of objects that implement the service.
  71. The act of finding lookup services is called ______
  72. The various JINI participants can register to listen to the various ______ emitted by the other JINI participants.
  73. 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.
  74. For a JINI device to offer its services to other devices, it first has to join the JINI federation.
  75. 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
  76. ______ is a peer-to-peer protocol and part of the Java platform
  77. _____ provides an actual protocol for those peers to send messages back and forth to one another.
  78. 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
  79. 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)
  80. 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
  81. 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)
  82. 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
  83. 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
  84. There is an image authoring tool that allows creation of images for BREW.
    BREW Image Authoring Tool
  85. 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
  86. This tool allows the developer to deploy an application on a handset through a PC connector.
    BREW AppLoader
  87. The ______ tool provides the developer a mechanism to generate a test Class ID.
  88. The ______ uses the Class 3 Certification from Verisign to authenticate and sign an application.
  89. (T/F) Everything in BREW is event driven.
  90. (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.
  91. An ___________ is the master control program that enables the hardware by abstracting it to the application via drivers.
    operating system
  92. 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++
  93. 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
  94. 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.
  95. 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++
  96. (T/F) Windows CE utilizes a protected memory architecture.
  97. 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)
  98. (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.
  99. .NET Web services are based on two key technologies:
    • WSDL (Web Services Definition Language)
    • SOAP (Simple Object Access Protocol)
  100. 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
  101. 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)
  102. Intended for thin clients and is built on its own lower level communication protocol.
    Wireless Application Protocol (WAP)
  103. In HTTP, this markup language was HTML; in WAP 1.x, it is WML, the ____________.
    Wireless Markup Language
  104. 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
  105. (T/F) WAP is a complete framework for mobile applications
  106. 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)
  107. (T/F) The difference between a proxy and a gateway is that a client determines when it will use a proxy.
  108. (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.
  109. WAP is responsible for:
    • Security
    • Network Access
    • Protocol Conversion
    • Caching
  110. The WAP gateway provides a secure handoff point between __________ to external security mechanisms.
    WTLS (Wireless Transport Layer Security)
  111. 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.
    SMIL (Synchronized Multimedia Integration Language)
  112. This proxy server acts as an intermediary between MMS clients and other messaging systems or MMS clients.
    MMS proxy-relay
  113. 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
  114. 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)
  115. Refers to sending a piece of content to the mobile device without the user explicitly requesting the particular content.
    Push (from Push Access Protocol)
  116. 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)
  117. One of the most powerful and popular platforms for mobile development, was created jointly by Ericsson, Nokia, Panasonic, Psion, Samsung Electronics, and Siemens.
  118. (T/F) Symbian started as an operating system that supported primarily C++, but it evolved to providing support for Java as well.
  119. (T/F) Symbian,as an operating system, has been designed for wirelessly connected devices.
  120. (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.
  121. _________ 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
  122. (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)
  123. ______ 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
  124. Cocoon is a framework that employs the principle of ___________.
    inversion of control
  125. These components transform the raw content into other content.
  126. These components provide the output for our black box from the transformed content provided to them by the transformers.
  127. 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.
  128. An _________ aggregates various pieces of content.
  129. (T/F) Because Cocoon is a Web-based application, an interaction with Cocoon is initiated through an HTTP request.
  130. 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
  131. This generator is peculiar in that it creates a series of SAX events with the data encapsulated in the incoming HTTP request.
    Request generator
  132. It allows usage of JSP pages as the source of dynamic data.
    JSP generator
  133. The _______ is a file where the instructions that form the pipelines and the definition of Cocoon components are outlined using an XML-based syntax.
  134. ________ that come with Cocoon allow one to make lexical pattern matches using Regular Expressions on the URI, HTTP request parameters, and HTTP session parameters.
  135. 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.
  136. _____ 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.
  137. 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
  138. (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
  139. ________ 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)
  140. It is an integrated environment with IBM’s Websphere Application Server and supports J2EE applications.
    Wireless Everyplace Suite
  141. 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
  142. (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.
  143. (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.
  144. (T/F) Asynchronous messaging allows us to treat both the connected and the disconnected devices.
  145. It is an open-source project managed by 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.
  146. _______ is the leading provider of tools for UML-based development. Rational is the most sophisticated of UML tools.
    Rational Software
  147. 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.
    Object Domain
Card Set
Ch02 - Introduction to Mobile Development Frameworks and Tools
2nd Semester