Smart Complaint Register for Govt Bodies 2011-2012
CHAPTER 1
INTRODUCTION
1.1 Introduction to Smart Complaint Register
Complaint registrations for government bodies i.e.: BWSSB, KPTCL, etc are offline. The
seriousness of the problem is often not known by offline means. Even reporting some of the
unsocial activities to police department have ended up in imagination based the eye witness to
draw a sketch of the accused. A mechanism to accept complaints from citizens 24 × 7 would be
the expectation from both the citizens and the government bodies. With number of people using
mobile phones is increasing, it has become a need for users to provide on their mobiles, all facili-
ties one is been utilizing on the internet.
In this project the user can take a snap shot of the particular activity i.e.: water leakage,
power cable hanging around, tree fall, unsocial activity etc.The application will augment the cur-
rent position where the picture is taken. The above augmented picture is sent to the concerned
authority.The priority of the complaint would be raised if the numbers of them are considerably
more in an area.The map of Bangalore is drawn; here it is colored with red, yellow or green flags
respectively ward wise, depending upon the no. of complaints received in an area.Statistical in-
formation is maintained such as the no. of complaints received ward wise, no. of them solved, a
graph to provide The pictures are also displayed to the general public on a discussion forum,
where they can post their comments
The proposed mobile natural language based interface system emulates the functionality
of the web portal based complaint filing system. The architecture of the system is shown in Fig-
ure 1.1. The users use the mobile phone and do not need to access the web portal interface di-
rectly to file their complaint. The user downloads an application onto his mobile phone. The user
runs the application on his phone to get a welcome screen. The system allows the user to com-
pose his complaint in 160 characters.
Dept of CS&E, Vemana Institute of TechnologyPage 1
Smart Complaint Register for Govt Bodies 2011-2012
Figure 1.1: Working of Smart Complaint Register
1.1.1 Basic Architecture
Once these information has been inferred by the system, it sends the information to the
Muncipal complaint handling system in a compatible format as a HTTP request. The response of
the Muncipal complaint handling portal is fetched and is parsed to determine the complaint num-
ber. This complaint number is then received by the user on his mobile phone.
In the event the complaint is incomplete in the sense of not having all the information
that is mandatorily required to generate a complaint number at the Muncipal portal; the system
gets into an interaction. In this mode, the system generates a set of dynamically generated
queries to seek the required information from the user through menu choices. Once the system
has all the required information, it send to the Muncipal complaint handling.
Dept of CS&E, Vemana Institute of TechnologyPage 2
Smart Complaint Register for Govt Bodies 2011-2012
Features
Smart Complaint Register for Government bodies have following features:
(a) it requires no change in the already existing web portal to lodge complaints.
(b) doesn’t require the citizen to remember any specific information to lodge their complaint.
(c) the mobile channel makes active citizen participation possible because of the higher penetra-
tion of mobile phones in India.
1.2 Problem statement
Municipal corporation (MC) of a city is a local governing body which takes care of the
functioning of the city. Among many other things one of the chief responsibilities of an MC in-
cludes addressing the complaints that the residents of the city might have. Maintenance of a large
city requires that the MC be aware of any shortcomings either through surveillance (sensors/
cameras) or by allowing the citizens to report them. The second option is usually preferred be-
cause there is a sense of belonging. A mechanism to accept complaints from citizens 24 × 7
would be the expectation from both the citizens and the MC. The MC allows its citizens to place
their complaints through several channels.
The chief modes of complaint registration is
(a) A visit to the ward office – where a person in charge listens to the complaint and asks for
some personal details and put it across into an electronic form for other departments within the
MC to handle the complaint.
(b) Through a contact center over a telephone - where the complaint is registered by an call cen-
ter agent by typing the complaint into the system and more recently.
(c) Through a web portal.
Dept of CS&E, Vemana Institute of TechnologyPage 3
Smart Complaint Register for Govt Bodies 2011-2012
1.3 Objective
Project propose a natural English enabled mobile interface which can be used to lodge
complaints. The essential idea is to make use of the existing web portal infrastructure and pro-
vide an easy, cheap and quick (complain as you see) mode of complaint registration around the
clock. The proposed system enables and assists citizens to lodge compliant and seek redressal
through their mobile phone in natural language
Dept of CS&E, Vemana Institute of TechnologyPage 4
Smart Complaint Register for Govt Bodies 2011-2012
CHAPTER 2
LITERATURE SURVEY
2.1 client
2.1.1 Introduction
In this section, we briefly examine the impacts of mobility on information services and ap-
plications, and the new paradigms of client-server computing needed to deal with these impacts.
A categorization of these computing paradigms is given below. This examination should facili-
tate our analysis and review of the various proposed techniques for mobile information access.
Existing research on mobile clientserver computing can be categorized into the following three
paradigms: (1) mobile-aware adaptation, (2) extended client-server model, and (3) mobile data
access. The dynamics of mobile environments and the limitations of mobile computing resources
make adaptation a necessary technique when building mobile systems and applications. The par-
adigm of mobile-aware adaptation covers various strategies and techniques in how systems and
applications respond to the environmental changes and the re source requirements. It also sug-
gests the necessary system services that could be utilized by mobile-aware applications.
2.1.2 Full Client Architecture
Mobile clients must be able to use networks with rather unpleasant characteristics: inter-
mittence, low bandwidth, high latency, or high expense. The connectivity with one or more of
these properties is referred to as weak connectivity. In the extreme case, mobile clients will be
forced to work under the disconnected mode. The ability to operate in disconnected mode can be
useful even when connectivity is available. For example, disconnected operations can extend bat-
tery life by avoiding wireless transmission and reception. It can reduce network charges, an im-
portant feature when charge rates are high. It allows radio silence to be maintained, a vital capa-
bility in military applications.
Dept of CS&E, Vemana Institute of TechnologyPage 5
Smart Complaint Register for Govt Bodies 2011-2012
Android is a software stack for mobile devices that includes an operating system,
middleware and key applications. Android is a software platform and operating system for
mobile devices based on the Linux operating system and developed by Google and the Open
Handset Alliance. It allows developers to write managed code in a Java-like language that
utilizes Google-developed Java libraries, but does not support programs developed in native
code. The unveiling of the Android platform on 5 November 2007 was announced with the
founding of the Open Handset Alliance, a consortium of 34 hardware, software and telecom
companies devoted to advancing open standards for mobile devices. When released in 2008,
most of the Android platform will be made available under the Apache free-software and open-
source license.
Open - Android allows to access core mobile device functionality through standard API
calls. All applications are equal - Android does not differentiate between the phone's basic and
third-party applications -- even the dialer or home screen can be replaced. Breaking down
boundaries - Combine information from the web with data on the phone -- such as contacts or
geographic location -- to create new user experiences. Fast and easy development - The SDK
contains what need to build and run Android applications, including a true device emulator and
advanced debugging tools.
2.2 THE BIRTH OF ANDROID
2.2.1 Google Acquires Android Inc.
In July 2005, Google acquired Android Inc., a small startup company based in Palo Alto,
CA. Android's co-founders who went to work at Google included Andy Rubin (co-founder of
Danger), Rich Miner (co-founder of Wildfire Communications, Inc), Nick Sears (once VP at T-
Mobile), and Chris White (one of the first engineers at WebTV). At the time, little was known
about the functions of Android Inc. other than they made software for mobile phones.
2.2.2 Open Handset Alliance Founded
Dept of CS&E, Vemana Institute of TechnologyPage 6
Smart Complaint Register for Govt Bodies 2011-2012
On 5 November 2007, the Open Handset Alliance, a consortium of several companies
which include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA,
was unveiled with the goal to develop open standards for mobile devices. Along with the
formation of the Open Handset Alliance, the OHA also unveiled their first product, Android, an
open source mobile device platform based on the Linux operating system.
2.2.3 Hardware
Google has unveiled at least three prototypes for Android, at the Mobile World Congress
on February 12, 2008. One prototype at the ARM booth displayed several basic Google
applications. A’d-pad' control zooming of items in the dock with a relatively quick response.
2.3 FEATURES OF ANDROID OPERATING SYSTEM
Application framework enabling reuse and replacement of components
Dalvik virtual machine optimized for mobile devices
Integrated browser based on the open source WebKit engine
Optimized graphics powered by a custom 2D graphics library; 3D graphics based
on the OpenGL ES 1.0 specification (hardware acceleration optional)
SQLite for structured data storage
Media support for common audio, video, and still image formats (MPEG4,
H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM Telephony (hardware dependent)
Bluetooth, EDGE, 3G, and Wi-Fi (hardware dependent)
Camera, GPS, compass, and accelerometer (hardware dependent)
Dept of CS&E, Vemana Institute of TechnologyPage 7
Smart Complaint Register for Govt Bodies 2011-2012
Rich development environment including a device emulator, tools for debugging,
memory and performance profiling, and a plug-in for the Eclipse IDE.
2.4 ANDROID ARCHITECTURE
Figure 2.1: Architecture of Android OS
2.4.1APPLICATION FRAMEWORK
Developers have full access to the same framework APIs used by the core applications.
The application architecture is designed to simplify the reuse of components; any application can
publish its capabilities and any other application may then make use of those capabilities (subject
to security constraints enforced by the framework). This same mechanism allows components to
Dept of CS&E, Vemana Institute of TechnologyPage 8
Smart Complaint Register for Govt Bodies 2011-2012
be replaced by the user.
Underlying all applications is a set of services and systems, including:
A rich and extensible set of Views that can be used to build an application, including
lists, grids, text boxes, buttons, and even an embeddable web browser.
Content Providers that enable applications to access data from other applications (such
as Contacts), or to share their own data.
A Resource Manager, providing access to non-code resources such as localized strings,
graphics, and lat files.
A Notification Manager that enables all applications to display custom alerts in the sta-
tus bar.
An Activity Manager that manages the life cycle of applications and provides a common
navigation back stack.
2.4.1 LIBRARIES
Android includes a set of C/C++ libraries used by various components of the Android
system. These capabilities are exposed to developers through the Android application framework.
Some of the core libraries are listed below:
System C library - a BSD-derived implementation of the standard C system library
(libc), tuned for embedded Linux-based devices.
Media Libraries - based on Packet Video’s Open CORE; the libraries support playback
and recording of many popular audio and video formats, as well as static image files, in-
cluding MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG.
Surface Manager - manages access to the display subsystem and seamlessly composites
2D and 3D graphic layers from multiple applications.
Dept of CS&E, Vemana Institute of TechnologyPage 9
Smart Complaint Register for Govt Bodies 2011-2012
LibWebCore - a modern web browser engine which powers both the Android browser
and an embeddable web view.
SGL - the underlying 2D graphics engine.
3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either
hardware 3D acceleration (where available) or the included, highly optimized 3D soft-
ware rasterizer.
Free Type - bitmap and vector font rendering.
SQLite - a powerful and lightweight relational database engine available to all applica-
tions.
2.4.2 ANDROID RUNTIME
Android includes a set of core libraries that provides most of the functionality available in
the core libraries of the Java programming language. Every Android application runs in its own
process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a
device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable
(.dex) format which is optimized for minimal memory footprint. The VM is register-based, and
runs classes compiled by a Java language compiler that have been transformed into the .dex
format by the included "dx" tool. The Dalvik VM relies on the Linux kernel for underlying
functionality such as threading and low-level memory management.
At the same level there is Android Runtime, where the main component Dalvik Virtual
Machine is located. It was designed specifically for Android running in limited environment,
where the limited battery, CPU, memory and data storage are the main issues. Android gives an
integrated tool “dx”, which converts generated byte code from .jar to .dex file, after this byte
code becomes much more efficient to run on the small processors.
Dept of CS&E, Vemana Institute of TechnologyPage 10
Smart Complaint Register for Govt Bodies 2011-2012
Figure 2.2: Conversion from .java to .dex file
As the result, it is possible to have multiple instances of Dalvik virtual machine running
on the single device at the same time. The Core libraries are written in Java language and
contains of the collection classes, the utilities, IO and other tools.
2.4.3 LINUX KERNEL
Android Architecture is based on Linux 2.6 kernel. It helps to manage security, memory
management, process management, network stack and other important issues. Therefore, the user
should bring Linux in his mobile device as the main operating system and install all the drivers
required in order to run it. Android provides the support for the Qualcomm MSM7K chipset
family. For instance, the current kernel tree supports Qualcomm MSM 7200A chipsets, but in the
second half of 2008 we should see mobile devices with stable version Qualcomm MSM 7200,
which includes major features:
1. WCDMA/HSUPA and EGPRS network support
2. Bluetooth 1.2 and Wi-Fi support
3. Digital audio support for mp3 and other formats
4. Support for Linux and other third-party operating systems
5. Java hardware acceleration and support for Java applications
6. Qcamera up to 6.0 megapixels
Dept of CS&E, Vemana Institute of TechnologyPage 11
Smart Complaint Register for Govt Bodies 2011-2012
2.4.4 ANDROID EXECUTION ENVIRONMENT
We represent the regular Java and Android execution paths in the figures respectively. It
is interesting to note here however is that the Android compilers do not operate on Java
Language code. Instead, the Android translators work on the resulting Java bytecode emitted
from a traditional Java compiler.
As such, it is possible to reuse existing Java libraries, even if the original source code is
not available. Such libraries must meet stringent requirements however, they need to:
1. adhere to the Java SE 5 dialect
2. not use any Java classes or packages found in Java SE 5 not found in the Android
platform
3. not use any packages or classes specific to the Sun Microsystems platform
4. still behave in a predictable manner under the Apache Harmony Java environment
Dept of CS&E, Vemana Institute of TechnologyPage 12
Smart Complaint Register for Govt Bodies 2011-2012
Figure 2.3: Regular Java Execution Process
Dept of CS&E, Vemana Institute of TechnologyPage 13
Smart Complaint Register for Govt Bodies 2011-2012
Figure 2.4: Android Execution Environment
Following these guidelines, it’s possible to integrate existing Java source code, packages
and libraries piecemeal. Special care will be needed in the integration phase of such code but the
potential savings offered by such integration far outweighs the cost of rewriting well-coded,
Dept of CS&E, Vemana Institute of TechnologyPage 14
Smart Complaint Register for Govt Bodies 2011-2012
well-documented and well-tested libraries ready for use. Furthermore, it is expected that has
Apache Harmony matures, more and more compatibility issues will be resolved further
increasing the pool of available Java code that will be able to execute unmodified under the
Android platform.
2.4.4.1 The Dalvik Virtual Machine
The Dalvik virtual machine is an interpreter only machine optimized for use on low
powered, low memory devices like phones. Notably, Dalvik does not make use of just in time
(JIT) Compilation to improve the performance of an application at runtime. Furthermore, Dalvik
is not a Java virtual machine. This is because Dalvik is unable to read Java bytecode34; instead it
uses its own bytecode format called “dex”. Google claims this format allows battery power to be
better-conserved at all different stages of execution of an application. This means that standard
Java SE applications and libraries cannot be used directly on the Android Dalvik virtual machine.
Dalvik however stands at the centre of the Android value proposition. Its low electrical power
consumption, rich libraries, and unified, non-fragmented application programming interfaces
make it stand out, or so Google hopes, over the fragmented ecosystem that is Java ME35 today.
Furthermore, since Dalvik uses the Java programming language but not the Java execution
environment (JVM), Google is free to develop Android without the need to license or obtain
certification from Sun Microsystems Inc, the legal owner of the Java trademark and brands.
2.5 LIFE CYCLE OF AN ANDROID APPLICATION
In most cases, every Android application runs in its own Linux process. This process is
created for the application when some of its code needs to be run, and will remain running until
it is no longer needed and the system needs to reclaim its memory for use by other applications.
An important and unusual feature of Android is that an application process's lifetime is
not directly controlled by the application itself. Instead, it is determined by the system through a
combination of the parts of the application that the system knows are running, how important
these things are to the user, and how much overall memory is available in the system.
Dept of CS&E, Vemana Institute of TechnologyPage 15
Smart Complaint Register for Govt Bodies 2011-2012
It is important that application developers understand how different application
components (in particular Activity, Service, and IntentReceiver) impact the lifetime of the
application's process. Not using these components correctly can result in the system killing the
application's process while it is doing important work.
A common example of a process life-cycle bug is an IntentReceiver that starts a thread
when it receives an Intent in its onReceiveIntent() method, and then returns from the function.
Once it returns, the system considers that IntentReceiver to be no longer active, and thus its
hosting process no longer needed (unless other application components are active in it). Thus, it
may kill the process at any time to reclaim memory, terminating the spawned thread that is
running in it. The solution to this problem is to start a Service from the IntentReceiver, so the
system knows that there is still active work being done in the process. To determine which
processes should be killed when low on memory, Android places them into an "importance
hierarchy" based on the components running in them and the state of those components. These
are, in order of importance:
1. A foreground process is one holding an Activity at the top of the screen that the user
is interacting with (its onResume () method has been called) or an IntentReceiver that is
currently running (its onReceiveIntent () method is executing). There will only ever be a few
such processes in the system, and these will only be killed as a last resort if memory is so low
that not even these processes can continue to run. Generally at this point the device has reached a
memory paging state, so this action is required in order to keep the user interface responsive.
2. A visible process is one holding an Activity that is visible to the user on-screen but not
in the foreground (its onPause() method has been called). This may occur, for example, if the
foreground activity has been displayed with a dialog appearance that allows the previous activity
to be seen behind it. Such a process is considered extremely important and will not be killed
unless doing so is required to keep all foreground processes running.
Dept of CS&E, Vemana Institute of TechnologyPage 16
Smart Complaint Register for Govt Bodies 2011-2012
Figure 2.5: Life Cycle of an Activity
Dept of CS&E, Vemana Institute of TechnologyPage 17
Smart Complaint Register for Govt Bodies 2011-2012
3. A service process is one holding a Service that has been started with the startService()
method. Though these processes are not directly visible to the user, they are generally doing
things that the user cares about (such as background mp3 playback or background network data
upload or download), so the system will always keep such processes running unless there is not
enough memory to retain all foreground and visible process.
4. A background process is one holding an Activity that is not currently visible to the
user (its onStop() method has been called). These processes have no direct impact on the user
experience. Provided they implement their activity life cycle correctly (see Activity for more
details), the system can kill such processes at any time to reclaim memory for one of the three
previous processes types. Usually there are many of these processes running, so they are kept in
5. An empty process is one that doesn't hold any active application components. The
only reason to keep such a process around is as a cache to improve start-up time the next time a
component of its application needs to run. As such, the system will often kill these processes in
order to balance overall system resources between these empty cached processes and the
underlying kernel caches. When deciding how to classify a process, the system picks the most
important level of all the components currently active in the process.
2.5.1 DEVELOPMENT TOOLS
The Android SDK includes a variety of custom tools that help develop mobile applications
on the Android platform. The most important of these are the Android Emulator and the Android
Development Tools plugin for Eclipse, but the SDK also includes a variety of other tools for
debugging, packaging, and installing are applications on the emulator.
Android Emulator A virtual mobile device that runs on computer use the emulator to de-
sign, debug, and test r applications in an actual Android run-time environment.
Android Development Tools Plugin for the Eclipse IDE
The ADT plugin adds powerful extensions to the Eclipse integrated environment; making
creating and debugging are Android applications easier and faster. If use Eclipse, the ADT plugin
Dept of CS&E, Vemana Institute of TechnologyPage 18
Smart Complaint Register for Govt Bodies 2011-2012
gives an incredible boost in developing Android applications:
It gives access to other Android development tools from inside the Eclipse IDE. For
example, ADT lets access the many capabilities of the DDMS tool — taking screenshots,
managing port-forwarding, setting breakpoints, and viewing thread and process information
directly from Eclipse.
It provides a New Project Wizard, which helps quickly create and set up all of the basic
files will need for a new Android application. It automates and simplifies the process of building
are Android application. It provides an Android code editor that helps write valid XML for are
Android manifest and resource files.
Dalvik Debug Monitor Service (DDMS)
Integrated with Dalvik, the Android platform's custom VM, this tool lets manage
processes on an emulator or device and assists in debugging. Can use it to kill processes, select a
specific process to debug, generate trace data, view heap and thread information, take
screenshots of the emulator or device, and more.
Android Debug Bridge (ADB)
The ADB tool lets install applications .apk files on an emulator or device and access the
emulator or device from a command line. This is also used to link a standard debugger to
application code running on an Android emulator or device.
Android Asset Packaging Tool (AAPT)
The AAPT tool lets create .apk files containing the binaries and resources of Android
applications.
Android Interface Description Language (AIDL)
AIDL lets to generate code for an interprocess interface, such as what a service
might use. Included as a convenience, this tool lets access the SQLite data files created
and used by Android applications.
Trace view
This tool produces graphical analysis views of trace log data that can generate from our
Dept of CS&E, Vemana Institute of TechnologyPage 19
Smart Complaint Register for Govt Bodies 2011-2012
Android application.
mksdcard
Helps create a disk image that can use with the emulator, to simulate the presence of an
external storage card (such as an SD card). The dx tool rewrites .class bytecode into Android
bytecode (stored in .dex files.)
activityCreator
A script that generates build files that can use to compile our Android applications. If we
are developing on Eclipse with the ADT plugin, we won’t need to use this script.
2.5.2 SECURITY AND PERMISSIONS IN ANDROID
Android is a multi-process system, where each application (and parts of the system) runs
in its own process. Most security between applications and the system is enforced at the process
level through standard Linux facilities, such as user and group IDs that are assigned to
applications. Additional finer-grained security features are provided through a "permission"
mechanism that enforces restrictions on the specific operations that a particular process can
perform.
Android mobile phone platform is going to be more secure than Apple’s iPhone or any
other device in the long run. There are several solutions nowadays to protect Google phone from
various attacks. One of them is security vendor McAfee, a member of Linux Mobile (LiMo)
Foundation. This foundation joins particular companies to develop an open mobile-device
software platform. Many of the companies listed in the LiMo Foundation have also become
members of the Open Handset Alliance (OHA).
As a result, Linux secure coding practice should successfully be built into the Android
development process. However, open platform has its own disadvantages, such as source code
vulnerability for black-hat hackers. In parallel with great opportunities for mobile application
developers, there is an expectation for exploitation and harm. Stealthy Trojans hidden in
animated images, particular viruses passed from friend to friend, used for spying and identity
theft, all these threats will be active for a long run.
Another solution for such attacks is SMobile Systems mobile package. Security Shield –
Dept of CS&E, Vemana Institute of TechnologyPage 20
Smart Complaint Register for Govt Bodies 2011-2012
an integrated application that includes anti-virus, anti-spam, firewall and other mobile protection
is up and ready to run on the Android operating system. Currently, the main problem is
availability for viruses to pose as an application and do things like dial phone numbers, send text
messages or multi-media messages or make connections to the Internet during normal device
use. It is possible for somebody to use the GPS feature to track a person’s location without their
knowledge. Hence SMobile Systems is ready to notify and block these secure alerts. But the
truth is that it is not possible to secure r mobile device or personal computer completely, as it
connects to the internet. And neither the Android phone nor other devices will prove to be the
exception.
2.5.3 CONCLUSION ON ANDROID
Android is a truly open, free development platform based on Linux and open source.
Handset makers can use and customize the platform without paying a royalty. A component-
based architecture inspired by Internet mash-ups. Parts of one application can be used in another
in ways not originally envisioned by the developer can even replace built-in components with
own improved versions.
This will unleash a new round of creativity in the mobile space.
Android is open to all: industry, developers and users
Participating in many of the successful open source projects
Aims to be as easy to build for as the web.
Google Android is stepping into the next level of Mobile Internet
The aim of this phase is to develop the application using necessary development tools
according to the system requirements specifications. All the functionalities specified in the
requirements document should be implemented. All the non functional requirements should also
be considered during the implementation phase. The implementation should exactly follow the
design guidelines which are documented in design document.
Dept of CS&E, Vemana Institute of TechnologyPage 21
Smart Complaint Register for Govt Bodies 2011-2012
Following tools has been used for development:
1. Eclipse IDE for Java developers
2. JDK 1.6 32-bit
3. “Android Development Tool” (ADT) plugin for eclipse
4. Android SDK 2.2 (Froyo)
5. Windows 7 64-bit operating system.
2.6 XML INTRODUCTION
MIDP devices have memory constraints when it comes to code, both in terms of the
amount of code you can store on the device, and memory available to applications at runtime.
So, keeping the size of applications and features in check is of paramount importance to the
J2ME developer. That’s where small-sized XML parsers come into play.
2.6.1 XML parsers
This section describes the XML parsing process and introduces some small XML parsers
for MIDP.
The XML parsing process operates in three phases:
1. XML input processing. In this stage, the application parses and validates the source document
recognizes and searches for relevant information based on its location or its tagging in the source
document; extracts the relevant information when it is located; and, optionally, maps and binds
the retrieved information to business objects.
2. Business logic handling. This is the stage in which the actual processing of the input
information takes place. It might result in the generation of output information.
Dept of CS&E, Vemana Institute of TechnologyPage 22
Smart Complaint Register for Govt Bodies 2011-2012
3. XML output processing. In this stage, the application constructs a model of the document to be
generated with the Document Object Model (DOM). It then either applies XSLT style sheets or
directly serializes to XML.
An application that implements such a processing model is called an XML parser. You
can integrate an XML parser into your Java applications with the Java API for XML Processing
(JAXP). JAXP allows applications to parse and transform XML documents using an API that is
independent of any particular XML processor implementation. Through a plug-in scheme,
developers can change XML processor implementations without altering their applications.
2.7 OVERVIEW OF GPS
The Global Positioning System (GPS) is a space-based global navigation satellite
system that provides reliable location and time information in all weather and at all times and
anywhere on or near the Earth where there is an unobstructed line of sight to four or more GPS
satellites. It is maintained by the United States government and is freely accessible by anyone
with a GPS receiver.
The GPS consists of three parts: the space segment, the control segment, and the user
segment. The U.S. Air Force develops, maintains, and operates the space and control segments.
GPS satellites broadcast signals from space, which each GPS receiver uses to calculate its three-
dimensional location (latitude, longitude, and altitude) plus the current time. The space segment
is composed of 24 to 32 satellites in medium Earth orbit and also includes the boosters required
to launch them into orbit. The control segment is composed of a master control station, an alter-
nate master control station, and a host of dedicated and shared ground antennas and monitor sta-
tions. The user segment is composed of hundreds of thousands of U.S. and allied military users
of the secure GPS Precise Positioning Service, and tens of millions of civil, commercial, and sci -
entific users of the Standard Positioning Service (see GPS navigation devices).
2.7.1 Applications
Dept of CS&E, Vemana Institute of TechnologyPage 23
Smart Complaint Register for Govt Bodies 2011-2012
GPS has become a widely used aid to navigation worldwide, and a useful tool for map-
making, land surveying, commerce, scientific uses, tracking and surveillance, and hobbies such
as geo caching and way marking. The precise time reference provided by GPS is used in many
applications including the scientific study of earthquakes and as a time synchronization source
for cellular network protocols. In addition, GPS has, in the words of the website gps.gov, become
a mainstay of transportation systems worldwide, providing navigation for aviation, ground, and
maritime operations. Disaster relief and emergency services depend upon GPS for location and
timing capabilities in their life-saving missions. The accurate timing provided by GPS facilitates
everyday activities such as banking, mobile phone operations, and even the control of power
grids. Farmers, surveyors, geologists and countless others perform their work more efficiently,
safely, economically, and accurately using the free and open GPS signal.
Using Location based services (LBS)
LBS – different technologies used to find a device’s current location
Two main LBS elements
Location Manager – provides hooks to the LBS
Location Providers – represents a different location-finding technology used to
determine the device’s current location.
Using Location Manager,
Obtain current location
Track movement
Set proximity alerts
Find available Location Providers
Selecting a Location Provider
Depending on device, there may be several technologies that Android can use to deter-
mine the current location with different capabilities(power consumption, monetary cost,
accuracy and ability to determine altitude, speed etc..)
To get an instance of a specific provider,
String providerName = LocationManager.GPS_PROVIDER;
LocationProvider gpsProvider = locationManager.getProvider(providerName);
Dept of CS&E, Vemana Institute of TechnologyPage 24
Smart Complaint Register for Govt Bodies 2011-2012
This is useful to determine abilities of a particular provider.
Two common Location providers
LocationManager.GPS_PROVIDER
LocationManager.NETWORK_PROVIDER
Finding your location
Access to the location-based service is handled by Location Manager system service.
LocationManager locationManager = (LocationManager)
getSystemService(LOCATION_SERVICE);
Add one or more uses-permissions in manifest.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION“/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION“/>
To find the last location fix determined by a particular provider,
Location location =
locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
Location object contains all the position information which can be retrieved using get
methods.
getLastKnownLocation() does not ask the provider to update the current position.
2.7.2 GPRS
General packet radio service (GPRS) is a packet oriented mobile data service on the 2G
and 3G cellular communication systems global system for mobile communications (GSM). The
service is available to users in over 200 countries. GPRS was originally standardized by
European Telecommunications Standards Institute (ETSI) in response to the earlier CDPD and i-
mode packet-switched cellular technologies. It is now maintained by the 3rd Generation Partner.
GPRS usage charging is based on volume of data, either as part of a bundle or on a pay-
as-you-use basis. An example of a bundle is up to 5 GB per month for a fixed fee. Usage above
the bundle cap is either charged for per megabyte or disallowed. The pay as you use charging is
Dept of CS&E, Vemana Institute of TechnologyPage 25
Smart Complaint Register for Govt Bodies 2011-2012
typically per megabyte of traffic. This contrasts with circuit switching data, which is typically
billed per minute of connection time, regardless of whether or not the user transfers data during
that period.
GPRS is a best-effort service, implying variable throughput and latency that depend on
the number of other users sharing the service concurrently, as opposed to circuit switching,
where a certain quality of service (QoS) is guaranteed during the connection. In 2G systems,
GPRS provides data rates of 56-114 kbit/second. 2G cellular technology combined with GPRS is
sometimes described as 2.5G, that is, a technology between the second (2G) and third (3G) gen-
erations of mobile telephony. It provides moderate-speed data transfer, by using unused time di-
vision multiple access (TDMA) channels in, for example, the GSM system. GPRS is integrated
into GSM Release 97 and newer releases.
2.8 OVERVIEW OF THE .NET FRAMEWORK
Microsoft announced the .NET framework in July 2000, its biggest initiative since the
launch of WINDOWS in 1991. .NET (pronounced dot net) is a revolutionary multi-language
platform that knits various aspects of application developed together with internet. The
framework covers all layers of software development above the operating system. Several
software’s will be developed by Microsoft to achieve this goal. It is expected that every player in
the industry be it a software developer or a device manager, adopt .NET so that they can be
integrated. The .NET initiative is all about enabling data transfer between networks, PCs and
devices seamlessly independent of the platforms, architecture and solutions. Microsoft has taken
many of the best ideas in the industries, combined in some great ideas pf their own, and brought
them all into one coherent package.
2.8.1 Introducing Visual Studio .net
VISUAL STUDIO .net is complete set of development tools for building ASP
Dept of CS&E, Vemana Institute of TechnologyPage 26
Smart Complaint Register for Govt Bodies 2011-2012
web applications, XML web services, desktop applications, and mobile applications. Visual
Basic .NET, Visual C++.NET, and Visual C#.NET all use the same Integrated Development
Environment(IDE), which allows them to share tools and facilities in the creation of mixed-
language solutions. In addition, these languages leverage the functionality of the .NET
framework, which provides access to key technologies that simplify the development of ASP
web applications and XML web services.
Visual Studio .NET Highlights
This section contains information about some of the latest features available in
this release of visual studio.
Language Enhancement
Microsoft Visual Basic, Microsoft C++, and Microsoft Jscript have all been
updated to meet your development needs. Additionally, a new language, Microsoft C#, has been
introduced. These languages leverage the functionality .NET framework, which provides access
to key technologies that simplify the development of ASP web applications and XML web
services.
Visual Basic
Visual Basic has been updated to include too many new and improved language
features that make it powerful object-oriented programming language. These features include
inheritance, interfaces and overloading, among others. Visual Basic also now supports structured
exception handling and custom attributes. In addition, Visual Basic supports multithreading.
Multithreading is the ability to individual task to separate processing threads. For more
information, see what’s new in the visual language and introduction to objects in visual basic.
C#
Dept of CS&E, Vemana Institute of TechnologyPage 27
Smart Complaint Register for Govt Bodies 2011-2012
Visual C#, pronounced C sharp, is a new object-oriented programming is just
some of the enhancements made to the C++, providing a simple and type-safe language for
developing application. For more information, see visual C## language.
C++
Managed extensions for C++ and attributed programming are just some of the
enhancement made to the c++ language. Managed extensions simplify the task of migrating
existing C++ applications to the new .NET framework. Attributes are designed to provide a quick
and efficient method to simplify COM programming with visual C++. For more information, see
extensions for C++ programming and attributed programming.
JScript
Jscript has been updated to be a class-based, object-oriented scripting language
that maintains full backwards compatibility with previous versions of jscript now provides class-
based objects, typed variables, true complied code and cross-language support through Common
Language Specifications (CLS) compliance. The primary role of jscript is development of
websites with ASP .NET and customization of application with script for the .NET framework.
For more information, see what’s new in jscript .NET.
Web Forms
Web Forms are an ASP.NET technology that uses to create programmable web
pages. Web Forms render themselves as browser-compatible HTML and script, which allows any
browser on any platform to view the pages. Using web forms you create web pages by dragging
and dropping controls on to the designer and then adding code, similar to the way that you create
visual basic forms. For more information, see introduction to web form pages.
Dept of CS&E, Vemana Institute of TechnologyPage 28
Smart Complaint Register for Govt Bodies 2011-2012
Windows Forms
Windows Forms is the new platform for Microsoft windows application
development, based on the .NET framework. This framework provides a clear, object-oriented,
extensible set of classes that enables you to develop a rich windows application. Additionally,
windows forms can act as the local user interface in a multi-tier distributed solution. For more
information see, introduction to windows forms.
XML Web Services
XML Web Services are applications that can receive request and data using XML
over HTTP. XML Web services are not tied to a particular component technology or object
calling convention and can therefore be accessed by any language, component model, or
operating system. In Visual Studio .NET, you can quickly create and include XML Web Services
using Visual Basic, Visual C#, Jscript, Managed extensions for C++, or ATL server. For more
information, see programming the web with XML web services.
XML Support
Extensible Markup Language (XML) provides a method for describing structured
data. XML is a subset of SGML that is optimized for delivery over the web. The World Wide
Web consortium (W3C) defines XML standards so that structured data will be uniform and
independent of applications. Visual Studio .NET fully supports XML providing the XML
designer to make it easier to edit XML and create XML schemas. For more information, see
XML schemas and Data and XML Designer.
The .NET Framework
The .NET framework is a multi-language environment for building, deploying, and
Dept of CS&E, Vemana Institute of TechnologyPage 29
Smart Complaint Register for Govt Bodies 2011-2012
running XML web services and applications.
It consists of three main parts.
Common Language Runtime
Despite its name, the runtime actually has a role in both a components runtime
and development time experiences. While the component is running, the runtime is responsible
for managing memory allocation, starting up and stopping thread processes, and enforcing
security policy, as well as satisfying and dependencies that the component might have on other
components. At development time, the runtime’s role changes slightly; because it automates so
much (for example, memory management), the runtime makes the developer’s experience very
simple, especially when compared to COM as it is today. In particular, features such as reflection
dramatically reduce the amount of code a developer must write in order to turn business logic
into a reusable component.
Unified programming classes
The framework provides developers with a unified, object-oriented hierarchical
and extensible set of class libraries (ASPs). Currently, c++ developers use the Microsoft
Foundation Classes and java developers use the windows Foundation Classes. The framework
unifies these disparate models and gives visual basic and Jscript programmer’s access to class
libraries as well. By creating a common set of APIs across all programming languages, the
common language runtime enables cross-language inheritance, error handling, and debugging.
All programming languages, from Jscript to c++, have similar access to the framework and
developers are free to choose the language that they want to use.
ASP .NET
ASP.NET builds on the programming classes of the .NET Framework, providing a
Dept of CS&E, Vemana Institute of TechnologyPage 30
Smart Complaint Register for Govt Bodies 2011-2012
web application model with a set of controls and infrastructure that make it simple to build ASP
web application. ASP.NET includes a set of controls that encapsulate common HTML user
interface as HTML to the browser. On the server, the controls expose an object-oriented
programming model that brings the richness of object-oriented programming to the web
developer. ASP.NET also provides infrastructure services, such as session state management and
process recycling that further reduce the amount of code a developer must write and increase
application reliability. In addition, ASP.NET uses these same concepts to enable developers to
deliver software as a service. Using XML web services features, ASP.NET developers can write
their business logic and use the ASP.Net infrastructure to deliver that service via SOAP. For more
information see SOAP community links.
Enterprise Templates
Visual Studio.NET provides several project templates that you can use to get a
jump start on developing distributed applications. Enterprise templates define the initial structure
of a distributed application and also provide architectural and technological guidance for
application design. In addition to pr-defined enterprise templates, you can also create custom
templates that can be used by developers in team environment. For more information, see
creating an Enterprise application’s initial structure and advantages of using enterprise Templates
to create Distributed Application.
What’s New in Visual Studio .NET
Visual Studio.NET is the tool for rapidly building enterprise-scale ASP web applications
and high performance desktop applications. Visual Studio includes component based
development tool such as Visual C#, Visual Basic, and Visual C++, as well as a number of
additional technologies to simplify team-based design, development and deployment of your
solutions.Visual Studio supports the .NET framework, which provides a common language
Dept of CS&E, Vemana Institute of TechnologyPage 31
Smart Complaint Register for Govt Bodies 2011-2012
runtime and unified programming classes; ASP.NET uses these components to create ASP web
applications and XML web services. Also included is the MSDN library, which contains all the
documentation see overview of the .NET framework, and programming the web with XML web
services.
The Integrated Development Environment
The following list of links covers new and improved items that are used by all of the
products within the visual studio Integrated Development Environment (IDE). These links you to
the various sections within this topic.
General Integrated Development Environment Tools
Visual Basic, Visual C++, Visual C#, and Microsoft Developer Network (MSDN)
are hosted within the Visual Studio Integrated Development Environment (IDE). Sharing a single
IDE provides many benefits, including consolidating similar tools from the various products into
a set of shares tools used throughout Visual Studio.
Application Templates
Visual studio provides application architectural guidance through templates.
Enterprise Templates
Visual Studio.NET provides several templates that software architects can use to
reduce the complexity and cost of developing distributed applications. Using Enterprise
Templates, you can define the initial structure of a distributed application and provide
architectural and technological guidance to development teams. In addition to pre-defined
Enterprise Templates, you can also create custom templates. For more information, you can also
Dept of CS&E, Vemana Institute of TechnologyPage 32
Smart Complaint Register for Govt Bodies 2011-2012
create custom templates. For more information, see Enterprise Templates for distributed
Applications and Advantages of using Enterprise Templates to create Distributed Applications.
MVC Architecture
The goal of the MVC design pattern is to separate the application object (model) from the
way it is represented to the user (view) from the way in which the user controls it (controller).
The Model object knows about all the data that need to be displayed. It also knows about all the
operations that can be applied to transform that object. However, it knows nothing whatever
about the Web UI, the manner in which the data are to be displayed, nor the Web UI actions that
are used to manipulate data. Data are accessed and manipulated through methods that are inde-
pendent of Web UI.
The model represents enterprise data and the business rules that govern access to and up-
dates of this data. Often the model serves as a software approximation to a real-world process, so
simple real-world modeling techniques apply when defining the model. The View object refers to
the model. It uses the query methods of the model to obtain data from the model and then dis -
plays the information. A view renders the contents of a model. It accesses enterprise data through
the model and specifies how that data should be presented. It is the view's responsibility to main -
tain consistency in its presentation when the model changes. The Controller object knows about
the physical means by which users manipulate data within the model. A controller translates in-
teractions with the view into actions to be performed by the model. In this, user interactions
could be button clicks or Open applications which appear as GET and POST HTTP requests. The
actions performed by the model include activating business processes or changing the state of the
model. Based on the user interactions and the outcome of the model actions, the controller re-
sponds by selecting an appropriate view.In Web user interfaces, views and controllers often work
very closely together. For example, a controller is responsible for updating a particular parameter
in the model that is then displayed by a view. In some cases a single object may function as both
Dept of CS&E, Vemana Institute of TechnologyPage 33
Smart Complaint Register for Govt Bodies 2011-2012
a controller and a view with only one model, however a particular model can have many view-
controller pairs.
Advantages:
The MVC architecture has the following benefits:
1) Multiple views using the same model: The separation of model and view allows multiple
views to use the same enterprise model. Consequently, an enterprise application's model compo-
nents are easier to implement, test, and maintain, since all access to the model goes through these
components.
2) Easier support for new types of clients: To support a new type of client, you simply write a
view and controller for it and wire them into the existing enterprise model.
3) Clarity of design: By glancing at the model's public method list, it should be easy to under-
stand how to control the model's behavior. When designing the application, this trait makes the
entire program easier to implement and maintain.
4) Efficient modularity: of the design allows any of the components to be swapped in and out
as the user or programmer desires - even the model! Changes to one aspect of the program aren't
coupled to other aspects, eliminating many nasty debugging situations. Also, development of the
various components can progress in parallel, once the interface between the components is
clearly defined.
5) Ease of growth: Controllers and views can grow as the model grows; and older versions of
the views and controllers can still be used as long as a common interface is maintained.
6) Distributable: With a couple of proxies one can easily distribute any MVC application by
only altering the startup method of the application.
The Scope of .NET
Dept of CS&E, Vemana Institute of TechnologyPage 34
Smart Complaint Register for Govt Bodies 2011-2012
.NET covers a very wide range of software technologies. Just how broad is the scope
of .NET? Consider the following scenarios involving programmers working with a different
aspect of .NET technology. Web site developers are interested in ASP.NET, a set of services
which support web site creation. Like other web server systems, ASP.NET runs on a web server
system and interacts with web browser using HTML and some scripting language (JavaScript or
VBScript). Older web server systems (including Microsoft's own Active Server Pages - ASP)
freely mix HTML and script to create hard-to-read and hard-to-manage source files. ASP.NET
separates the HTML from the code, and provides a host of improvements to the web application
development process. Consider another developer, this one building desktop database
applications. Such a developer might want to create a GUI front-end that interacts with a user
and manages the interactions with a back-end SQL database. .NET offers this developer many
things, but each is different from what the windows applications developer works with. Such a
developer uses the Web forms portion of the .NET Framework to build the web site, same
developer would rely on a different portion of .NET, the ADO.NET support which provides
access to the SQL database as a Web Developer, But that developer also sees a programming
environment that bridges the gap between Web programming and Desktop programming.
Something for each of these developers, the specific features which are interesting to one group
hold little interest to another group of developers.
Three Application Classes
When you scratch the surface of .NET, you find three application classes: Windows
Forms, Web Forms, and XML Web services. The first two application classes differ from each
other in the user-interface and in the delivery mechanism for that user-interface. A Web service,
on the other hand, has no user-interface.
Common Programming Elements
Dept of CS&E, Vemana Institute of TechnologyPage 35
Smart Complaint Register for Govt Bodies 2011-2012
The essence of .NET can be found in the new programming model that .NET introduces
for Microsoft Ajax Extensions for .NET provides a programming model that presents the
dynamic access to desktop applications.
Up to server-scale systems, .NET provides a unified way to develop many different kinds of
software applications, including traditional GUI applications, web-browser accessible
applications or back-end XML Web service applications. The .NET initiative unifies software
development across a wide range of device classes, and incorporates a broad set of application
types through the following core elements:
• Well designed programming interface
• Common Intermediate Language
• Common Language Runtime
• Common Language Specification
• Common Type System
• Common Language Infrastructure
Well Designed Programming Interface
Back in the early 1980's, Microsoft's goal in creating Web was not simple: to make an
easy to- use web user-interface system. The goals never included making it easy to write code for
the web based system. Quite to the contrary, it was just and proper that professional
programmers bore the burden of taming the complexities of computers.
Common Intermediate Language (CIL)
When you build a .NET program (.exe) file or a shared library (.dll) file, you create an
executable file that outwardly is the same as Win32, MFC, or compiled VB program. This is
known technically as a Win32 portable executable, or 'PE' file24. Each PE file targets a specific
instruction set. Some instruction sets are tied to a specific CPU family, which is rule for the Intel
x86, MIPS R4000, and Toshiba SH4 instruction sets. One unique aspect of .NET executable files
is that the executable files are written for an
Dept of CS&E, Vemana Institute of TechnologyPage 36
Smart Complaint Register for Govt Bodies 2011-2012
instruction set not tied to a specific CPU family. This is the IL instruction set, which stands for
'Intermediate Language.' It has other names, including Microsoft Intermediate Language (MSIL),
and Common Intermediate Language (CIL), the name used in the submission as an ECMA
standard.
Managed Code and Unmanaged Code
The code within an IL executable file is called managed code. Non-IL executables, by
contrast, contain unmanaged code. Managed code is code that relies on the .NET runtime for
automatic memory management, verification of type-safety of code, and array-boundary
checking among other features. Unmanaged code, sometimes called 'native code', does not get
the benefit of these features. Programmers sometimes express confusion about whether IL is
interpreted or compiled. The concern is performance because interpreted languages – like
SmallTalk and some versions of BASIC – run slower than compiled languages. The sluggishness
of an interpreted language occurs because most of the processing of source level instructions
occurs at runtime. An interpreted language is often easy to develop for, with a very interactive
development environment that lets a programmer modify the code and continue running. The
performance concerns, however, have largely made interpreted languages useful for prototyping
but not for production code. IL provides is the portability of an interpreted language with the
speed benefits of a compiled language. While an IL interpreter is possible, all current
implementation of IL run as native instructions. The conversion from IL to native CPU
instructions is done at runtime, on a per-function basis. Desktop versions of .NET allow for an
entire IL executable to be converted to native instructions and added to the native image cache
(using a tool called ngen.exe). The storage capacity for a native image cache (and so the
Compact Framework does not support an IL cache) IL is not the world's first portable instruction
set, incidentally. Java programs are often compiled to create Java byte code executable files. At
runtime, a Java Virtual Machine (JVM) converts the portable instruction set to native machine
instructions. The conversion of portable instructions to native instructions is calling JITting (the
term used for both Java and .NET programs). The 'JIT' stands for "just-in-time," a term that
originates in manufacturing to refer to last minute delivery of required parts. With IL, JITting is
done on a per method basis on both the desktop and the Compact Framework. By having this
Dept of CS&E, Vemana Institute of TechnologyPage 37
Smart Complaint Register for Govt Bodies 2011-2012
fine level of granularity, only the specific methods which are called get converted; methods that
never get called are never JITted, saving both processing time and storage space. Once a method
has been converted from IL to native instructions, the native code version of the method stays in
RAM. The collection of JITted native code is referred to as the native image cache. This means
that the cost incurred for the JITting can get amortized for methods which are called often.
Native methods are not locked into memory, but rather the memory they occupy is subject to
reclamation by the garbage collector just like unreachable data objects.
Common Language Runtime (CLR)
The Common Language Runtime (CLR) refers to a set of services which support .NET
executables. Among the services it provides are the loading of an executable into memory, the
JITting of its IL to native instructions, and the allocating and freeing of objects.The most
commonly discussed task that the CLR handles is memory management,
and in particular the reclaiming of unreachable objects known as garbage collection. The various
.NET frameworks are not the first to implement this service: SmallTalk, Visual Basic, and Java
all support garbage collection in one form or another. .NET garbage collection is important
because it represents the first automatic garbage collection that is compatible with many different
programming languages. As we mention elsewhere, a program written in one language can call a
component written in another language, and the two can freely share high-level objects. This is
possible because the two share a common memory allocator, as provided by the CLR. And that
memory is properly reclaimed as part of garbage collection, again provided by the CLR.How
does automatic memory management (i.e. 'garbage collection') work? When the available
memory drops below a predefined threshold, the memory manager freezes all threads in a given
process. At that point, it walks the stack of all threads looking for references to objects in the
heap. Some objects refer to other objects, and this continues until every stack frame for every
thread in the process has been taken into account. Each object that can be reached, through either
a direct or an indirect reference on the stack, is user data. The user data gets compacted in the
heap, and everything else is reclaimed. A benefit of this approach is that a pure memory object
can be allocated and then abandoned and it gets reclaimed. No explicit operation is needed to
free such objects.
Dept of CS&E, Vemana Institute of TechnologyPage 38
Smart Complaint Register for Govt Bodies 2011-2012
In some cases, however, you may want to explicitly free an object because it contains one
or more references to a resource which does, in fact, require some cleanup. This might be a file
that needs to be closed, a network connection that needs to be logged out, or an unmanaged
library that needs to free some Win32 objects. In such cases, you implement a pair of cleanup
methods to handle automatic (Finalize) cleanup, or manual (Dispose) cleanup.
Common Language Specification (CLS)
The word 'common,' which appears often in .NET terms, has many meanings including
'plain' and 'ordinary.' That is not what 'common' means in .NET. A better word might be
'standard,' because these elements define a set of standards that allow a wide range of
programming languages to interoperate with each other. The Common Language Specification
(CLS), in particular, refers to a set of standards that were created to promote interoperability
between different programming languages. This is very important architectural feature of
the .NET initiative. It opens up the possibility that existing code libraries can more easily be
made available as managed code libraries. It also allows programmers a wider range of
programming languages instead of restricting them to just a few. In the world before .NET, the
Win32 API was primarily available to C and C++ programs. Visual Basic programs were second-
class citizens, because aspects of Win32 and COM were difficult if not impossible to access from
Visual Basic. As Microsoft shipped new versions of VB, the gap got narrower and narrower
between what a C programmer and a VB programmer could do, but it never really went away
entirely in unmanaged code. In the world of managed code programming, however, that gap
essentially disappears.
In .NET, because it supports the Common Language Specification, Visual Basic .NET is
a first-class citizen. .NET both languages use the same runtime (the Common Language
Runtime), and both support a common set of types (as defined in the Common Type System). A
library written in VB .NET can be called from a C# program, and vice-versa. The common
standards used by .NET-compatible languages are what enable this interoperability. An even
larger set of programming languages is available on the desktop .NET Framework. The desktop
supports C# and VB .NET, just like the Compact Framework. There is, in addition, a .NET-
compatible version of the C++ compiler that supports a .NET-compatible mode known as
Dept of CS&E, Vemana Institute of TechnologyPage 39
Smart Complaint Register for Govt Bodies 2011-2012
"Managed C++." At the initial .NET announcement, there was a demonstration of
a .NETcompatible web site that was written in COBOL. Other .NET languages that we know of
include: Dyalog APL, Eiffel, Fortran (Salford FTN95), J++, JScript .NET, Mercury, Mondrian,
Oberon, Pascal, Perl, Python, SmallTalk, and Standard ML.
Common Type System (CTS)
The Common Type System (CTS) defines a standard set of types which are supported by
all .NET-compatible compilers. The ability for .NET executables to freely interoperate between
executables built from different languages relies on the common set of types defined by the
common type system. The common type system is a fundamental building block for .NET
programming. We provide a more complete discussion of the common type system in chapter 3
(Fundamental .NET Data Types).
Common Language Infrastructure (CLI)
The Common Language Infrastructure (CLI) describes a subset of the .NET Framework
which Microsoft submitted as a standard to ECMA. It does not include the Windows Forms
classes, the Web Forms classes, or the Web Services classes. What it does include is enough of
the low-level details to allow third-parties to create .NET-compatible compilers, debuggers, and
other tools. The CLI does include the two topics we just discussed, the Common Language
Specification and the Common Type System. Programmers who are eager to learn more about the
Common Language Infrastructure can find a set of Word files which spell out in detail the
various elements.
CHAPTER 3
Dept of CS&E, Vemana Institute of TechnologyPage 40
Smart Complaint Register for Govt Bodies 2011-2012
REQUIREMENTS
In this chapter we define all the requirements of this project and at the end of this chapter scope
of this project are explained.
3.1 User Requirements
3.1.1 Functional requirements
1. Client is on android platform using android devlopment kit integrated with eclipse 3.5 or
higher sun jdk 5 or higher, written in java language.
2. Server side is written in dotnet language using visual studio 2008 integrated with sql
server 2000. Visual studio is used to create homepage containing login for admin and
user.
3. SQL server contains the queries and table for maintaing database
4. Complaints are categorywise and in chronological order with a unique 36 charachter
complaint ID & mobile number.
5. Description of complaint is limited to 160 characters.
6. If user fail to fill any of the required specification on client, error is genrated.
7. For augmenting position GPS of phone is used. For linking GPS to project we need to
obtain the secret key from Code.google.com by regestring ourself with MAP ADT.
8. This gives us facility to get exact loacation by calculating longitude and latitude.
9. This numeric values of GPS are sent to server using REST service. On Server,google
Map is drawn and position is displayed using flags.
10. To avoid duplicate complaints and redundancy minimum 25 meter difference is
Dept of CS&E, Vemana Institute of TechnologyPage 41
Smart Complaint Register for Govt Bodies 2011-2012
maintained and complaint must be made in 5 minutes gap.
11. Here image manipulation is important as we use different megapixel camera devices
which may create error while sending and require high bandwidth sometime. Application
crop and convert the image in base 64 format.
12. Members of client side or third party can see details on website but cannot modify only
add comments.
13. Members of category admin can only update the status but cannot delete the entry.
14. Memebers of administrators group can delete entry on database.
15. The server domain is bought from the “nettgritty” domain provider, which has also
provide us with response SMS sent to the client.
3.1.2.1 Usability
1. The application should be very responsive and should not hang at any point of time.
2. Display area should be used efficiently. As android is open platform and there are
numerous devices from different vendors having different display sizes and resolutions
the application should be adaptable to different screen resolutions.
3. Input gestures like single tap, double tab should be processed seamlessly without any
delay.
4. The application should never crash and create a bad user experience.
5. The application should be able to run smoothly across devices irrespective of the device
hardware capabilities.
6. The UI design should follow Android UI guidelines and Android paradigm.
3.2 Non-Functional requirements
Dept of CS&E, Vemana Institute of TechnologyPage 42
Smart Complaint Register for Govt Bodies 2011-2012
Scalability:
Functional Scalability: we can enhance the system by adding hospital services etc.
Rural schools and colleges are provided with Akash Tablets which has android os, so
number of user increases.
Adminstrative scalability: It can be applied to all government bodies every individual
body can do category admin login and update status.
Reliability:
The client application can work on android phone its compatible to all versions of it and
with minimum hardware requirements.
Client requires 64kb/s 2G databandwidth for sending the data. Failure rate are possible in
augumenting the longitude and latitude if GPS is not conneted.
Usability:
Complaint can be written in natural language. Symbol with government body name given
as option. Can take snap directly no need to turn on camera seprately.
Security:
Autentication: for everytime a complaint is requested user mobile number is sent and dis-
played so no fake complaint is possible.
Maintainability:
APIs are open so modification can be done on client as well on server part.
Changing the sim card or changing the device wont create ambiguity as phone send only
own user number.
Portability:
Portability possible for android phone but not for any os phone like symbian, bada or
meego as their APIs are not open to third party.
CHAPTER 4
Dept of CS&E, Vemana Institute of TechnologyPage 43
Smart Complaint Register for Govt Bodies 2011-2012
ANALYSIS
4.1 Existing System
The chief modes of registering complaint is
(a)A visit to the ward office –person in charge listens to the complaint and asks for some per-
sonal details and put it across into an electronic form for other departments
(b)Through a contact center over a telephone - where the complaint is registered by an call center
agent by typing the complaint into the system and more recently
(c) Through a web portal.
4.2 PROPOSED SYSTEM
User can take a snap shot of the activity i.e.: water leakage.
The application will augment the current position of picture taken.
The priority of the complaint would be raised if the numbers of the are considerably more
in an area..
The map of city is drawn; here it is colored with red, yellow or green flag respectively
ward wise, depending upon the no. of complaints received in and area.
Statistical information is maintained such as the no. of complaints received ward wise,
no. of them solved.
The pictures are also displayed to the general public on a discussion forum where they
can post their comments.
CHAPTER 5
Dept of CS&E, Vemana Institute of TechnologyPage 44
Smart Complaint Register for Govt Bodies 2011-2012
DESIGN
5.1 UML Class Diagram
Fig 5.1: UML Class Diagram
5.2 Flowchart
Dept of CS&E, Vemana Institute of TechnologyPage 45START
If Take Picture Button Clicked
B
Request Location Manager about the location updates for every 5 mins for minimum distance as 25m.Get the user’s Mobile Number
N
Smart Complaint Register for Govt Bodies 2011-2012
Dept of CS&E, Vemana Institute of TechnologyPage 46
Display the Home Activity with Buttons for each category
If Button clicked is for one of the category? [BWSSB,BESCOM,TR
Display Complaint Activity by passing category name which user has selected [Take picture, Remark, Register ]
Y
N
B
Exit Button clicked Close the Application
Get Handle of Location Manager
Find out Location Providers available on device
If Network Provider
Use Network Provider
If GPS Provider avaialable?
Use GPS Provider
Y
N
Y
A
Smart Complaint Register for Govt Bodies 2011-2012
5.3 Architecture of the proposed system
Dept of CS&E, Vemana Institute of TechnologyPage 47
Smart Complaint Register for Govt Bodies 2011-2012
Fig 5.3: Architecture of the proposed system
Dept of CS&E, Vemana Institute of TechnologyPage 48
Smart Complaint Register for Govt Bodies 2011-2012
5.4 Architecture of Smart Complaint Server
Fig 5.4: Architecture of smart complaint server
Dept of CS&E, Vemana Institute of TechnologyPage 49
Smart Complaint Register for Govt Bodies 2011-2012
5.5 DATABASE TABLE
The Table involved in developing the project is as follows :-
1. Name of the Database -- Masterbase
2. Table1 -- ComplaintInfo
3. Table2 -- CompTags
4. Table 3 – SmartAdmin
5. Table 4 – Smartcategory
6. Table 5 – SmartUploads
7. Table 6 -- Smartusers
ComplaintInfo
CompTags
Dept of CS&E, Vemana Institute of TechnologyPage 50
Smart Complaint Register for Govt Bodies 2011-2012
SmartAdmin
Smartcategory
SmartUploads
Smartusers
Dept of CS&E, Vemana Institute of TechnologyPage 51
Smart Complaint Register for Govt Bodies 2011-2012
Dept of CS&E, Vemana Institute of TechnologyPage 52
Smart Complaint Register for Govt Bodies 2011-2012
CHAPTER 6
IMPLEMENTATION
6.1 SYSTEM IMPLEMENTATION
Implementation is the stage of the project where the theoretical design is turned into a
working system. At this stage the main work load, the greatest upheaval and the major
impact on the existing system shifts to the user department. If the implementation is not
carefully planned an controlled it can cause chaos and confusion. Implementation includes all
those activities that take place to convert from the old system to the new one. The new
system may be totally new, replacing an existing manual or automated system or it may be a
major modification to an existing system. Proper implementation is essential to provide a
reliable system to meet the organization requirements. Successful implementation may not
guarantee improvement in the organization using the new system, but improper installation
will prevent it. The process of putting the developed system in actual use is called system
implementation. This includes all those activities that take place to convert from the old
system to the new system. The system can be implemented only after thorough testing is
done and if it is found to be working according to the specifications. The system personnel
check the feasibility of the system.
The implementation stage involves following tasks.
Careful planning.
Investigation of system and constraints.
Design of methods to achieve the changeover.
Training of the staff in the changeover phase.
Evaluation of the changeover method.
The most crucial stage is achieving a new successful system and giving confidence on the
new system for the user that it will work efficiently and effectively. It involves careful planning,
Dept of CS&E, Vemana Institute of TechnologyPage 53
Smart Complaint Register for Govt Bodies 2011-2012
investigation of the current system and its constraints on implementation, design of methods to
achieve the changeover. The more complex the system being implemented, the more involved
will be the system analysis an the design effort required just for implementation. The system
implementation has three main aspects. They are education and training, system testing and
changeover.
Implementation Procedures
Implementation of software refers to the final installation of the package in its real
environment, to the satisfaction of the intended users and the operation of the system. In many
organizations some one who will not be operating it, will commission the software development
project. The people who are not sure that the software is meant to make their job easier. In the
initial stage, they doubt about the software but we have to ensure that the resistance does not
build up as one has to make sure that
The active user must be aware of the benefits of using the system
Their confidence in the software is built up
Proper guidance is imparted to the user so that he is comfortable in using the
application.
Before going ahead and viewing the system, the user must know that for viewing the
result, the server program should be running in the server. If the server object is not up running
on the server, the actual processes won’t take place.
User Training
To achieve the objectives and benefits expected from computer based system, it is
essential for the people who will be involved to be confident of their role in the new system. As
systems become more complex, the need for education an training is more and more important.
Education is complementary to training. It brings life to formal training by explaining
the background to the resources for them. Education involves creating the right atmosphere and
Dept of CS&E, Vemana Institute of TechnologyPage 54
Smart Complaint Register for Govt Bodies 2011-2012
motivating user staff. Education sections should encourage participation from all staff with
protection for individuals for group criticism. Education should start will before any
development work to enable users to maintain or to regain the ability to participate in the
development of their system.
Education information can make training more interesting and more understandable. The
aim should always be to make individual feel that they can still make all important contributions,
to explain how they participate in making system changes, and to show that the computer and
computer staff do not operate in isolation, but are of the same organization.
Training on the Application
After providing the necessary basic training on the computer awareness the users will
have to be trained on the new application software. This will give the underlying philosophy of
the use of the new system such as the screen flow, screen design, type of help on the screen, type
of errors while entering the data the corresponding validation check at each entry and the ways to
correct the data entered. It should then cover information needed by the specific user/groups to
use the system or part of the system while imparting the training of the program on the
application. This training may be different across different user groups and across different
levels of hierarchy.
Operational Documentation
Once the implementation plan is decided, it is essential that the user of the system is
made familiar and comfortable with the environment. Education involves right atmosphere &
motivating the user. A documentation providing the whole operations of the system is being
developed. The system is developed in such a way that the user can work with it in a well
consistent way. The system is developed user friendly so that the user can work the system from
the tips given in the application itself. Useful tips and guidance is given inside the application
itself to help the user. Users have to be made aware that what can be achieved with the new
system and how it increases the performance of the system. The user of the system should be
Dept of CS&E, Vemana Institute of TechnologyPage 55
Smart Complaint Register for Govt Bodies 2011-2012
given a general idea of the system before he uses the system.
System Maintenance
The maintenance phase of the software cycle is the time in which a Software product
performs useful work. After a system is successfully implemented, it should be maintained in a
proper manner. System maintenance is an important aspect in the software development life
cycle. The need for system maintenance is for it to make adaptable to the changes in the system
environment. There may be social, technical and other environmental changes, which affects a
system, which is being implemented. Software product enhancements may involve providing
new functional capabilities, improving user displays and mode of interaction, upgrading the
performance characteristics of the system. So only through proper system maintenance
procedures, the system can be adapted to cope up with these changes.
Software maintenance is of course, far more than “finding mistakes”. We may define
maintenance by describing four activities that are undertaken to after a program is released for
use. The first maintenance activity occurs because it is unreasonable to assume that software
testing will uncover all latent errors in a large software system. During the use of any large
program, errors will occur and be reported to the developer. The process that includes the
diagnosis and correction of one or more errors is called corrective maintenance. The second
activity that contributes to a definition of maintenance occurs because of the rapid change that is
encountered in every aspect of computing. Therefore, adaptive maintenance- an activity that
modifies software to properly interfere with a changing environment is both necessary and
commonplace.
The third activity that may be applied to a definition of maintenance occurs when a
software package is successful. As the software is used, recommendations for new capabilities,
modifications to existing functions, and general enhancements are received from users. To
satisfy requests in this category, perfective maintenance is performed. This activity accounts for
the majority of all effort expended on software maintenance.
Dept of CS&E, Vemana Institute of TechnologyPage 56
Smart Complaint Register for Govt Bodies 2011-2012
CHAPTER 7
TESTING
7.1 SYSTEM TESTING
Taking various kinds of data plays a vital role in system testing. After preparing
the test data, the system under steady is tested using the test data. While testing errors are again
uncovered and corrected by using the above steps and corrections are also noted for future use.
The system has been verified and validated by running the test data and live data. First the
system is tested with some sample test data that are generated with knowledge of the possible
range of values that are required to hold by the field’s the system runs successfully for the given
test data and for the live data.
Types of Testing
Unit Testing
Here we test each module individually and integrate the overall system. Unit testing
focuses verification efforts even in the smallest unit of software design in each module. This is
also known as “module testing.”. The modules of the system are tested separately. This testing is
carried out in the programming style itself. In this testing each module is focused to work
satisfactorily as regard to expected output from the module there are some validation checks for
the fields.
Integration testing
Data can be lost across an interface, one module can have an adverse effect on the other
sub functions, when combined may not produce the desired functions. Integrated testing is the
systematic testing to uncover the errors with an interface. This testing is done with simple data
and developed system has run successfully with this simple data. The need for integrated system
is to find the overall system performance.
Dept of CS&E, Vemana Institute of TechnologyPage 57
Smart Complaint Register for Govt Bodies 2011-2012
7.2 Types of Integration Testing
1. Top Down Integration
Modules are integrated by moving downward through the control hierarchy, beginning
with the main program module.
2. Bottom up Integration
Bottom up Integration is implemented with the following steps:
Low-level modules are combined into clusters into clusters that perform a specific Soft-
ware sub-function.
A driver (i.e.,) the control program for testing is written to coordinate test case input and
output.
The cluster is tested.
Drivers are removed and clusters are combined moving upward in the program structure.
Validation testing
At the culmination of black box testing, software is completely assembled s a package.
Interfacing errors have been uncovered and the correct and final series of tests, i.e., validation
tests begins. Validation test is defined with a simple definition that validation succeeds when the
software function in a manner that can be reasonably accepted by the customer.
Output Testing
After performing validation testing, the next step is output testing of the proposed system.
Since the system cannot be useful if it does not produce the required output. Asking the user
about the format in which the system s required tests the output displayed or generated by the
system under consideration. Here the output format is considered in two ways one is on screen
format and the other one is a printed format the output format on the screen is found to be
Dept of CS&E, Vemana Institute of TechnologyPage 58
Smart Complaint Register for Govt Bodies 2011-2012
corrected as the format was designed in the system has according to the user needs.
Test data and Output:
Taking various kind soft data plays a vital role in system testing. After preparing the test
data system under study is tested using the test data. While testing, errors are again uncovered
and corrected by using the above steps and corrections are also noted for future use. The system
has been verified and validated by running test data and live data.
User acceptance testing:
User acceptance testing of the system is the key factor for the success of any system. A
system under consideration is tested for user acceptance by constantly keeping in touch with the
prospective system at the time of development and making change whenever required. This is
done with regard to the input screen design and output screen design.
Dept of CS&E, Vemana Institute of TechnologyPage 59
Smart Complaint Register for Govt Bodies 2011-2012
CHAPTER 8
CONCLUSION
8.1 Conclusion
In current system, complaint registrations for government bodies i.e.: BWSSB, KPTCL,
etc are offline. The seriousness of the problem is often not known by offline means. Even
reporting some of the unsocial activities to police department have ended up in imagination
based the eye witness to draw a sketch of the accused.
The application solves all these problems. It offers below services
1. User can take a snap shot of the particular activity i.e.: water leakage, power cable
hanging around, tree fall, unsocial activity etc.
2. The application will augment the current position where the picture is taken.
3. The above augmented picture is sent to the concerned authority.
4. The priority of the complaint would be raised if the numbers of them are considerably
more in an area.
5. The map of Bangalore is drawn; here it is colored with red, yellow or green flags
respectively ward wise, depending upon the no. of complaints received in an area.
6. Statistical information is maintained such as the no. of complaints received ward wise,
no. of them solved, a graph to provide
The pictures are also displayed to the general public on a discussion forum, where they can
post their comments.
Dept of CS&E, Vemana Institute of TechnologyPage 60
Smart Complaint Register for Govt Bodies 2011-2012
CHAPTER 9
SNAPSHOTS
Dept of CS&E, Vemana Institute of TechnologyPage 61
Smart Complaint Register for Govt Bodies 2011-2012
Dept of CS&E, Vemana Institute of TechnologyPage 62
Smart Complaint Register for Govt Bodies 2011-2012
Dept of CS&E, Vemana Institute of TechnologyPage 63
Smart Complaint Register for Govt Bodies 2011-2012
REFERENCES
1. http://developer.android.com/sdk/api_diff/9/changes/
android.location.LocationManager.html
2. http://java.sun.com/javase/downloads/index.jsp
3. http://www.eclipse.org/downloads/Eclipse
4. http://www.google.com
5. http://msdn.microsoft.com/en-us/library/ms123401.aspx
6. The C# Complete Reference 2.0, Herbert Schildt, Fourth edition, Tata – McGraw
Hill publication.
7. ASP.Net 2.0 with C# Professional, Wrox Publications, Irwin/McGraw-Hill
publication.
Dept of CS&E, Vemana Institute of TechnologyPage 64
Smart Complaint Register for Govt Bodies 2011-2012
APPENDIX A: ACRONYMS
Bluetooth: It is a wireless networking protocol designed to replace cable network technology for
devices within 30 feet. Like IEEE 802.11b, Bluetooth also operates in unlicensed 2.4GHz
spectrum, but it only supports data rates up to 1 Mbps.
CDPD: Cellular Digital Packet Data is a wireless standard providing two way data transmission
at 19.2 kbps over existing cellular phone systems.
CDMA: Code Division Multiple Access, also known as CDMA-ONE or IS-95 is a spread
spectrum communication technology that allows many users to communicate simultaneously
using the same frequency spectrum. Communication between users are differentiated by using a
unique code for each user. This method allows more users to share the spectrum at the same time
than alternative technologies.
CDMA-2000: Sometimes also known as IS-136 and IMT-CDMA multicarrier (1X/3X) is an
evolution of narrowband radio transmission technology known as CDMA-ONE (also called
CDMA or IS-95), to third generation. 1X refers to the use of 1.25 Mhz channel while 3X refers
to 5 Mhz channel.
DAWN: Advanced technologies including smart antenna and flexible modulation are keys to
optimize this wireless version of reconfigurable adhoc networks.
DSSS: In Direct Sequence Spread Spectrum, the data stream to be transmitted is divided into
small pieces, each of which allocated a frequency channel. Then the data signal is combined with
a higher data rate bit sequence known as “chipping code” that divides the data according to a
spreading ratio thus allowing a resistance from interference during transmission.
EDGE: Enhanced Data rates for Global Evolution technology gives GSM and TDMA the
capability to handle 3rd generation mobile phone services with speeds upto 384 kbps. Since it
uses the TDMA infrastructure, a smooth transition from TDMA based systems such as GSM to
EDGE is expected.
FHSS: In Frequency Hopping Spread Spectrum a broad slice of bandwidth spectrum is divided
into many possible broadcast frequencies to be used by the transmitted signal.
GPRS: General Packet Radio Service provides data rates upto 115 kbps for wireless Internet and
Dept of CS&E, Vemana Institute of TechnologyPage 65
Smart Complaint Register for Govt Bodies 2011-2012
other types of data communications using packet data services.
GSM: Global Systems for Mobile Communication is a world-wide standard for digital wireless
mobile phone systems. The standard was oroginated by the European Conference of Postal and
Telecommunications Administrations (CEPT) who was responsible for the creation of ETSI.
Currently ETSI is responsible for the development of GSM standard.
Mobile phones: Mobile communication systems that uses radio communication and
conventional telephone switching to allow communication to and from mobile users.
Photonic networks: A network of computers made up using photonic devices based on optics.
The devices include photonic switches, gateways and routers.
PSTN: Public Switched Telephone Network is a regular voice telephone network.
Spread Spectrum: It is a form of wireless communication in which the frequency of the
transmitted signal is deliberately varied over a wide range. This results in a higher bandwidth of
the signal than the one without varied frequency.
TDMA: Time Division Multiple Access is a technology for sharing a medium by several users
by dividing into different time slots transmitting at the same frequency.
UMTS: Universal Mobile Telecommunications System is the third generation mobile telephone
standard in Europe that was proposed by ETSI.
WAP: Wireless Application Protocol defines the use of TCP/IP and web browsing for mobile
systems.
WCDMA: Wideband CDMA is a technology for wideband digital radio communications of
multimedia and other capacity demanding applications. It is adopted by ITU under the name
IMT-2000 direct spread.
WDM: Wavelength Division Multiplexing allows many independent signals to be transmitted
simultaneously on one fiber, with each signal located at a different wavelength. Routing and
detection of these signals require devices that are wavelength selective, allowing for the
transmission, recovery, or routing of specific wavelengths in photonic networks.
WWWW: A world wide wireless web is capable of supporting a comprehensive wireless based
web application that includes full graphics and multimedia capability at beyond 4G speeds
Dept of CS&E, Vemana Institute of TechnologyPage 66
Top Related