Professional Documents
Culture Documents
GOVERNMENT AGENCIES
By
Juddy A. Gómez Gutiérrez
A project submitted in partial fulfillment of the requirements for the degree of
MASTER OF ENGINEERING
in
COMPUTER ENGINEERING
University of Puerto Rico
Mayagüez Campus
2007
Approved by:
The main objective of this work has been the development I-eGS, a framework
for the integration of e-government services, and with the ultimate goal of making them
allowing any interaction with users through the Web. Users of the system will be the
government agencies that register and maintain services, and the citizens that request
services. Government agencies themselves will easily register new services (by providing
the corresponding WSDL file) and combine any number of existing services to create
specialized web service. Such web service is assumed to be maintained by the particular
agency that is primarily responsible for that particular government service. The citizen is
then able to smoothly access the services through a Web-portal without having to be
may also be required prior to the final completion of the one being requested. It also
simplifies the effort to request a service by requiring only minimum personal data, and
avoiding replication of the data entry effort whenever the same data is needed by several
of the agencies that may be involved in granting the service. The current version of the
system, and hence this project, has focused in services to grant government certifications
ii
RESUMEN
la integración de servicios de gobierno para que puedan ser accedidos por los ciudadanos
a través de la Web. Se asume que los servicios son accesibles mediante “Web services”
que proveen las agencias de gobierno. La especificación de cada “Web service” se provee
a través de su archivo WSDL, el cual puede ser registrado en el sistema como un servicio
básico. Dicha especificación es configurada de manera apropiada para que pueda ser
accesible como un servicio por parte de los ciudadanos. Además, una agencia de
ciudadano acceda a los servicios que proveen las agencias sin tener que preocuparse por
posibles dependencias que puedan ser necesarias entre ellos para proveer las
certificaciones pertinentes.
Por otra parte, el sistema persigue minimizar el esfuerzo que el ciudadano tiene
previas al sistema. Esto es posible debido a que el sistema almacena la información que el
ciudadano provee cuando utiliza un servicio, y que puede ser requerida en el futuro por
otro servicio. La versión actual del sistema, y por lo tanto este proyecto, se ha enfocado
ciudadanos.
iii
Copyright © 2007
By
Juddy A. Gómez-Gutiérrez
iv
To my great family
v
ACKNOWLEDGMENTS
First, I would like to thank God for giving me his love and for expressing it to me
I would also like to thank my advisor and committee chair Dr. Pedro I. Rivera
Vega for his guidance and support during this project as well as for his kindness in many
my graduate committee, Dr. Manuel Rodriguez-Rodriguez and Dr. Bienvenido Velez for
Thanks to my family for their support and prayers, especially to my mom for
teaching me that God never puts in your way any obstacle that you cannot overcome.
Thanks to Hugo Andres Macias Ferro for sharing nice and difficult moments with
me during this time, and for giving me the opportunity to share good moments with his
Lebanon, Peru, and Puerto Rico for their time, friendship and the experiences we have
shared during this time. Thanks to my other partners at the ADMG Laboratory for their
support and friendship. Finally, I would also like to thank all other people not mentioned
vi
TABLE OF CONTENTS
ABSTRACT........................................................................................................................II
ACKNOWLEDGMENTS ................................................................................................ VI
TABLE OF CONTENTS.................................................................................................VII
LIST OF TABLES............................................................................................................ IX
1. INTRODUCTION ...................................................................................................... 1
1.1 Problem Statement .............................................................................................. 2
1.2 Contributions....................................................................................................... 4
1.3 Outline................................................................................................................. 5
vii
3.4 Web Portal ........................................................................................................ 47
3.4.1 Administrator Users .................................................................................. 48
3.4.2 Citizen User .............................................................................................. 50
3.5 Services Engine................................................................................................. 53
4. FUNCTIONALITY TESTS...................................................................................... 57
4.1 Test enrollment ................................................................................................. 58
4.2 Tests Procedure................................................................................................. 59
4.3 Test Results....................................................................................................... 60
viii
LIST OF TABLES
Table Page
ix
LIST OF FIGURES
Figure Page
x
Figure 3-14: Citizen Attributes Configuration.................................................................. 50
xi
LIST OF ABREVIATIONS
xii
1
CHAPTER 1
1. Introduction
The Web has become an extremely popular tool for most service oriented
factors are the pervasive access to better communication infrastructures and the advent of
modern software technologies that support the development of systems aimed to carry the
oriented process. With the use of these technologies, sophisticated Web-based systems
increase customers’ satisfaction, and has played a critical role in the success being
experienced by most of those businesses that have incorporated modern e-Commerce and
through the Web. It is a common trend for them to incorporate similar processes with the
final goal of providing better and more efficient services to their citizens, and hence
An important new technology that has had a remarkable impact in all this
technological revolution is that of Web services. In short terms, a Web service provides a
environments. They support the fast development and deployment of systems that would
otherwise require a vast detailed knowledge about distributed computation and about
proprietary business logic of other partner entities with which collaboration may be
essential. Through this technology an organization can make available a particular service
services. That other organization just needs to invoke the publicized Web service as
The work in this project has focused on the development of a system to support
facilitate the registration and composition of services that particular agencies are able to
offer through Web services. In the following subsections, we will present a general
services that are offered directly to individual citizens. A typical example of these
services is the granting of certifications or approvals that are required from citizens on
more complex service. Often, a service of this kind, even when it is finally granted by
one specific agency, depends on the prior completion of other services. Moreover, some
3
of those other services may be provided by other agencies. Some typical examples of
such services are: applying for driving license, requesting certification of no debt from
the IRS, applying for a construction permit, applying for public housing services, and so
on.
Nowadays, these services may be offered through Web servers; allowing the
citizen to exercise his/her requests without having to physically visit the government
agencies. Unfortunately, it is common for these servers to lack the appropriate integration
of services; therefore the citizen may be required to visit several Web sites and to
replicate the forms filling effort, being asked to supply the same data in the different
forms that need to be filled throughout the requesting process. An attractive alternative is
to have those services integrated through Web portals. For the citizen is then easier to get
access to those services since the number of web sites that need to be accessed, as well as
simple task. In general, it is necessary to know particular details of each basic service that
is to be part of the composition. In many cases these services are managed by remote
sites and may follow local standards that might not be generally known and therefore
programmed to produce the final integrated service, usually requiring high programming
skills and sophisticated knowledge about Web technologies and distributed applications.
Moreover, the final product is likely to be highly monolithic, making difficult the
adjustment of the system to new requirements that may arise in the future.
4
One modern alternative is for such agencies to advertise Web services that
interact with the local applications that implement the particular services they are
responsible for. Other agencies will then be able to program their particular services, by
properly invoking those remote services through the corresponding Web service. We
that agencies are able to smoothly access publicized services from other agencies and use
them to create and make available new services to the public. Citizens can access these
services without worrying about other agencies that may need to get involved in the
process of providing the service and hence make easier the process of requesting the
1.2 Contributions
The main objective of this work has been to build a framework to facilitate the
integration of services offered by government agencies through the Web. We are focused
in services that provide a certain kind of certification and assume that each agency is
capable of generating Web services components to access the particular services at their
own facilities. We refer to this framework as I-eGS - Framework for the Integration of e-
Government Services. The framework offers the government agencies the capacity to
smoothly register their services and to create new ones formed from the integration of
others previously registered. It also brings the citizens an easy and pervasive way to
conveniently access government services. The following are the main activities that the
Moreover, the framework provides a mechanism to allow re-use of the data that is
provided by a citizen whenever services are requested by him/her. These data can be
shared among agencies, and is ready to be used, without the need for the citizen to
reproduce his/her personal data in every agency or for every service request that he/she
initiates.
1.3 Outline
The remainder of this report is organized as follows. Chapter 2 provides a
literature review and related work in around the integration of web services. Then,
Chapter 3 presents a complete description of the Framework for the Smooth Integration
five testers to a previous version of the Framework. Finally, Chapter 5 presents the
CHAPTER 2
2. Literature Review
This chapter provides a literature review of the theoretical background along with
the related works in the area of integration of web services and areas related with the
The most common technologies to allow the integration of distributed services are
CORBA [1], DCOM [2], RMI [3] and Web services [4]. These technologies support
interoperable systems over the Web. The first three require a marshalling and
unmarshalling process, which is a non-trivial task due to the fact that distributed services
and clients to use the same Object Request Broker, a central bus over which CORBA
objects (instances of services) interact transparently. Java RMI (Java Remote Method
Invocation) is functional only if both client and servers are running the Java Virtual
Machine. RMI is not suitable for integrating heterogeneous applications since the RMI’s
7
native-transport protocol can only communicate with other Java RMI objects. DCOM
DCOM versions have been developed to provide support to others operative systems.
Finally we have the Web Services alternative, technology that has had wide acceptance.
I-eGS is based on web service technology; we will describe the main features of
machine interaction over a network [5]. It is described using a standard, formal data-
centric XML notation, called its service description. It covers all the details necessary to
interact with the service, including message formats (that detail the operations), transport
• The Simple Object Access Protocol (SOAP) [6] that is the fundamental messaging
messaging allowing data exchange between distributed applications and may be used
with different network transport protocols (e.g., Hyper Text Transfer Protocol
on how to communicate and make a request to a Web service. WSDL is often used in
combination with SOAP and XML Schema to provide web services over the internet.
We will describe with more details WSDL specification in the next section.
• Universal Description Discovery and Integration (UDDI) [8] is the protocol used for
the publishing of the Web services information in order to find available Web
8
messages and to provide access to WSDL documents describing the protocol bindings
and message formats required to interact with the Web services listed in its directory.
In the I-eGS’ context, WSDL description is used to get the syntactic information
about the definition of each service provided by a government agency. Each service must
have a WSDL document containing an XML description of the functional aspects of the
service, as well as the input and output parameters for its operations. Communication
between service requester (citizen interface) and service provider (agency) is carried
agencies. This interface hides the implementation details of the service, allowing it to be
about what messages go in and come out from a service. This information is only
From the point of view of a client a WSDL document describes a public service
for it, and from service implementer side, the document can be viewed as the
A WSDL document has two parts: an abstract part and a concert part [9]. The fist
one, describes what Web service does in terms of messages it consumes and produces,
and the other one, defines how and where the service is offered.
Figure 2-2 shows the syntactic structure of a WSDL document sticking out the
into a <definitions> element. This element contains a targetname attribute who is the
ownership of the set of definitions inside the document, all the XML namespace needed
(xmlns attributes) and an optional name attribute related with the name of the Web
• <type> element: It is used to indicate the data definitions that web service will
use later in the definition of the messages that it will exchange. WSDL does not
declare data structures per se. It allows languages that can define XML data to be
used.
• <message> element: It allows to describe the messages that web service will
exchange. One <message> element must be defined by each message that the web
binding area of the WSDL is written. Each part has two attributes, its name and
the kind (element or type) which is associated with the messaging style. If a part
defines type, it means it is using the RPC-style messaging and it can be associated
with any data item of the specified type, otherwise, if the part defines element, it
means the document-style messaging is used and the part must be the value of a
specified element.
identifier. This element is probably the most important part of a WSDL document
provides and the group of inputs, outputs and faults message that it will be
11
o One-way: Service receives one message but it has not to produce anything
message in response.
message in response.
message in response.
out and the <messages>s define the parameters types for the operations, the
protocol-depended manner. WSDL does not assume one standard way to format
messages; it can exchange messages using SOAP, HTTP or MIME, but the most
• <service> element: It is the final part of a web service description which contains
one attribute, its name, and a child element <port> which has two attributes, name
and a reference to a binging. A service can have several <port> elements. Each
<port> element describes where a single portType is offered via a given binding.
Into the I-eGS a WSDL file provides a description of a service that a government
agency offers. It is used to create the required classes by in order to be able to invoke the
12
service. These classes are called stub classes which by definition are Java classes with a
Java-friendly API that closely matches the Web service interface defined in a given
WSDL document [5]. I-eGS uses emitter tooling that Axis provides that allow the
software architecture that has several unique characteristics. The SOA presents a
particular approach for building distributed systems that deliver application functionality
behavior that can be implemented and provided by an entity to be used by another entity.
For example, a bank provides the service “pay bill” which could be used for another
The most important aspect of the SOA is that it separates the service’s
implementation from its interface. In other words, it separates the “what” from the
“how”. Service consumers view a service simply as an endpoint that supports a particular
request format or contract. Service consumers are not concerned with how the service
goes about executing their requests; they expect only that it will [11].
It is the entity that accepts and stores contracts from service providers and provides those
module that requires and consumes a service. It is the entity that initiates the locating of
the service in the registry, binding to the service over a transport, and executing the
service function. The service requestor executes the service by sending it a request
that accepts and executes requests from consumers. It can be a mainframe system, a
component, or some other type of software system that executes the service request. The
service provider publishes its contract in the registry for access by service consumers.
different platforms and languages to communicate with each other. Each service provides
an interface that can be invoked through a connector type. This is the reason to adopt
which are running in different platforms and implemented in different languages, some
interoperability problems might happen; the most are related with the web service design.
14
Web Service design process can be done in two ways: contract-first or code-first
[13], each one differs in how its development is performed and mainly how the WSDL
implementation of the service. Once the WSDL file is ready, the stub classes are
generated automatically with a web service code generator (e.g. WSDL2Java). In code-
first, Service implementation is done before to generate the WSDL document. Once a
web service interface is done the WSDL document is generated from the web service
code.
Several mistakes can be introduced in the of web service design phase or in the
SOAP messages are not understand them by the requester or received, and so
on.
Among the main causes that originate these problems can be mentioned [14]:
The WSDL is not valid, some required elements or attributes are not defined.
The WSDL works only with a specific platform and no other platform can
The XML serialization fails due to the fact that the XML data in the SOAP
messages is not compatible with the XML schema in the WSDL or a bug in
These and other interoperability problems have been the focus of the Web
established basic profiles which involve interoperability guidelines and related industry
WS-I tools version 1.1 (Basic Profile 1.1) to verify; If any basic service provided by
contract amount multiple parts which are working with the same type of XML, it is
essential to define specific rules that the XML document of each part must comply. After
a bigger effort the W3C produced a standard specification to established, XML Schemas.
government agencies who want to provide their services through the system. Each service
and utilizing large collections of data. The alternative to using a DBMS is to store the
data in files and write application-specific code to manage it [15]. There are many kinds
of DBMS but the dominant types of DBMS today are the Relational Database Systems
(RDBMSs). The relational model was introduced by Edgar Codd in the 1970 [16] and it
is based in the fundamental assumption that all data are represented as mathematical
relations. RDBMs support transactions in a way that guarantee all of the ACID
(Atomicity, Consistency, Isolation, and Durability) properties for each transaction, which
(ODBC) and Java DataBase Conectivity (JDBC) are industry-standard database access
middleware.
I-eGS has adopted MySQL as Relational Data Base Management System, where
the information required to the system operation is stored. For instance: user information,
computer applications into three layers and decouples their respective responsibilities.
Figure 2-4 shows the interactions amongst the layers defined in this pattern: Model
The model application represents business data and business logic or operations
that govern access and modification of this business data. This layer serves as a software
approximation to real-world functionality. The model notifies views when it changes and
provides the ability for the view to query the model about its state. It also provides the
ability for the controller to access application functionality encapsulated by the model.
The view renders the contents of a model. It accesses data from the model and
specifies how that data should be presented. It updates data presentation when the model
The controller defines application behavior. It dispatches user requests and selects
views for presentation. It interprets user inputs and maps them into actions to be
performed by the model. In a stand-alone GUI client, user inputs include button clicks
and menu selections. In a Web application, they are HTTP GET and POST requests to
the Web tier. A controller selects the next view to display based on the user interactions
and the outcome of the model operations. An application typically has one controller for
each set of related functionality. Some applications use a separate controller for each
client type, because view interaction and selection often vary between client types.
18
Server Pages (JSPs) and JavaBeans. The Model architecture is a hybrid approach for
serving dynamic content, since it combines the use of both Servlets and JSP. It takes
advantage of the predominant strengths of both technologies, using JSP to generate the
presentation layer and Servlets to perform process-intensive tasks. Here, the Servlet acts
as the controller and is in charge of the request processing and the creation of any beans
or objects used by the JSP, as well as deciding, depending on the user's actions, which
JSP page to forward the request to. Note particularly that there is no processing logic
within the JSP page itself; it is simply responsible for retrieving any objects or beans that
may have been previously created by the Servlet, and extracting the dynamic content
availability of their service to improve the citizen’s satisfaction level. The second one
exposes the current solutions that allow the service integration in order to improve the
Union. Among these we can mention “E-Gov Portal Solution” and “E-Government
Started Kit”. First one was developed specifically to facilitate the generation, filing and
technical procedures and provides a content management system that allows an easy
procedures, laws, and others. E-Government Started Kit was designed by PC-WARE
applications, has a user database and enables the administration of all components from a
standard, browser-based interface. It can be used for sending, processing and dealing with
all sorts of enquiries from members of the public, companies and institutes. The system
Citizens can access to government services whenever they want to. E-Government
Started Kit is the most common system adopted by the European Union governments.
The Belfast e-Science Centre of Queen's University of Belfast (UK) [19] has a
project called “Planning Grid Gateway”. It aims to build a platform to allow North
Ireland’s planning process to be integrated across multiple domains and enterprises. The
system will allow new applications and business processes to be developed based upon
citizens. In the same way, this project pursues to provide an internet portal that allows
customers to submit, pay for and track the progress of planning applications online in a
secure environment.
Kong by University of Science and Technology and Dickson Computer Systems. ERAS
aims to integrate information systems from various governmental departments and public
service through Web services. The system allows to maintain information available from
20
databases of transportation and traffic condition when an emergency call is received. The
suitable access to this information will make possible to find an optimized path to access
the emergency place by considering the statistics of traffic condition and the location
information. Call centers are integrated to ERAS using Web service technologies. The
system keeps a register of each received call (traffic congestion, traffic accident) and the
selected route to attend the emergency. This helps to estimate the time of the route based
on past record.
the Puerto Rico Government to provide support to government’s processes and services
publish electronic transactions, and the agency monitor tool that was created in order for
government agencies to manage their transactions. Web portal is the citizen access
interface to request services that a government agency can provide. When a citizen asks
for a service through the web portal she or he has to fill a form. Once the form is
submitted, the system sends a notification to the corresponding agency. The agency
processes the request as soon as possible using the Agency Monitor. ELAF allows the
registration of requests but it does not incorporate a mechanism that allows to provide an
an adequate response to the requested services; the most agencies provide a response
sending the required certifications by physical mail after 2 or more of receiving the
notification.
21
research topic hence there are several approaches around the Web service Integration
area.
subscription, selection and definition of services. The system executes the service
interfaces, a portal engine as middleware classes to call the services and invoke methods
from them. Finally when a user requests a service, he or she has to insert the input or
parameters through a generated form, and the portal engine invokes the Web service
build a generic portal framework for easy integration of existing services of individual
mechanisms that allow to interconnect databases, web services and applications based on
current standards. Security is defined as the user identification management with sign-on
facility. Personalization and customization are focused to provide a role-based access and
web page layout respectively. Content Management refers to the mechanism to update
the information related to an individual institution and shared with others. Finally, the
Workflow is defined to provide web-based processes automation with even triggers for
22
L et al [23] present an e-learning Case Study, where several Educational Institution work
Acuña, Cesar J. et al [24] propose a SOA independent architecture for web data
semantic web services implemented with the WSMO (Web Services Modeling
Ontology). This paper catalogs the services involve in the architecture in two groups:
core services group and access services group. The first one are the mandatory services
which provide all the tasks necessary to achieve integration, and the second one are the
services which give access to the data or service provider by another system. This work
CHAPTER 3
new ones based on others previously registered. The system requires that, in order for an
agency to be able to register a new service, it is able to provide such particular service by
a Web service. A new service is registered using the WSDL definition of the
corresponding Web service, after validating that is WS-I and I-eGS compliant. Once
validation is done, the system asks for descriptive information of the service and stores it
in the repository of services (system’s database). A composed service is one that results
from the integration of several existing services. To support the creation of composed
services, I-eGS includes a wizard that guides the user during the creation process; that is,
the system provides assistance for the selection of services that will integrate the new
service, the definition of attributes for the new service, and the publication of the service
I-eGS includes a Web Portal component through which citizens can request any
of the registered services. When a citizen requests a service, he or she must fill a form,
supplying the data that the service requires. Such data is then stored in the system’s
24
database, and hence is available whenever the same user asks for a service in the future.
If new data is required in future requests, it is added to the particular user’s data
request is stored in the system’s database and it is available to the citizen when he or she
Users of the system are citizens that request services, and the government
agencies that register new services and integrate them. We refer to these users as: citizen
users and agency users, respectively. An administrator is a specialized user who can
Citizen
user
Web Portal
Citizen
Access Point user
Service agency A
Services
Engine
Administrator
User
Access Point
Service agency B Web Portal
Database
Agency
Access Point User
Service Agency N RDBMS Repository
Of
Services
I-eGS architecture (Figure 3-1 ) is SOA compliant since the service providers, the
repository of services (service register), and the service requester are clearly identified.
• A Service provider is any access point in the network where a basic service provided
• Service register is the repository of services or database where the information about
services is stored.
• Service requester is equivalent to the Service Engine. When a user asks for a service
through the web portal, the Service Engine processes the user request and request for
registered and about each one of the users. The data about a service is used whenever the
service is requested or is selected to be part of a composite service. The data about users
is used to keep a historical track about the interaction that each particular user has had
with the system and to minimize the effort that the user needs to invest whenever
requesting future services. Hence the system includes a major database component to
manage all these data. Such database is modeled by the Entity-Relationship (E-R)
Before continuing our discussion about I-eGS, and for the sake of completeness
of this report, we briefly describe what an E-R diagram is. Such diagram has been
database system. Entity sets are represented by rectangles, their attributes are represented
by ellipses, double ellipses represent multi-valued attributes, and diamonds represent the
relationship sets between entity sets. Underlined attributes correspond the primary key
26
(attributes that uniquely identify an entity) of the particular entity. Table 3-1 shows the
cardinality notation denoting the participation of an entity set in a relationship set. The
Notation Meaning
many-to-many relationship
one-to-one relationship
27
We now briefly describe each of the relevant entities in the database that I-eGS needs to
manage, and which are part of the previous E-R diagram. For each of the entities, we
only include the descriptions of those attributes that may need further description about
its purpose. As for the others, the name of the attribute itself must clearly suggest what its
intention or purpose is. All the relevant attributes about each entity have been included in
the diagram
• user: it corresponds to any user of the system, and acts as a generalization of the
following three entities: citizen, officer, and administrator. Attributes that are
common to the former three are included as part of the user entity. They include:
user’s name, password, and e-mail address. The user_id attribute is defined as the
• officer and administrator: these entities have the same attributes as user entity,
but their privileges are not the same. An officer user is able to manage services in
the system and register new ones, whereas the administrator user can only manage
information about offices and agencies, and the user accounts as well.
• citizen: this entity describes the citizens. It includes fundamental attributes for
which every citizen must submit a value whenever he/she is registered. However,
values for other attributes not listed here. For these, we have included the
• citizen_attribute: this entity allows the system to link other attributes to a citizen,
and which might not be required for every citizen in the system. The reason is that
some services to be registered into the system may use particular attributes that
29
are not necessarily required by other services. Notice that this represents a kind of
“virtual variable schema” for the citizen entity. The attributes of the
citizen_attribute entity are the name and description of the citizen attribute to be
stored in it. Its primary key, attribute_id, is generated by the system whenever a
• agency: an agency entity represents a government agency. This entity contains the
name, which is the name of the agency. The primary key is generated by the
system.
government agency. This entity contains a description of the office, its name, and
in the system. It contains the name of the service, the date and the time of its
control version system that allows the modification of a service registered in the
system.
This is a weak entity from parent_service entity. A service version exits only
because there is a parent service that it belongs to. The discriminator for this weak
entity is the version attribute, since, for each parent service, a version number
uniquely identifies a specific version for that parent service. This entity also
composed, the service’s wsdlfile and targetname attributes for basic services,
service description attribute which contains the description of the version service,
and finally status attribute which shows whether the service is available or not.
associated to the <operation> elements defined in the WSDL file in the case of
basic services. It contains the operations’ name, description, and defines the
contains the input name, input data type (String, Numeric, Boolean) and
description. Finally, input_id attribute is defined as the primary key of the entity
set involved in each service. For basic services this information is gotten from the
WSDL file.
provides after its execution. This entity defines the datatype attribute which
contains the output data type of the operation. For basic services this information
• resultusedservice: This entity identifies the results that a service provides when a
certification file and an explanation in the case the agency has a comment about
the service. System also stores the technical information to display when a service
is not available for any reason and cannot provide the expected results to the user.
31
associated to zero or more citizens. A citizen can have many attributes. For each
common attribute, if a particular citizen has supplied a value for such attribute,
• officer_service: an officer can register and create several services, but a service
• is_version_of: a parent service could have several versions, but a service version
• op_output: an operation can be provided by just one output parameter which will
tables that were derived from the E-R diagram shown. To do so, we have followed
update services in the system. This component is accessible only to administrators of the
system. I-eGS classifies services into one of the following two categories: basic services
is not composite. These are services that are directly registered by government agencies,
and are not based on the integration of other services already registered in the system. It
providing the service upon valid requests and that the service can be accessed by
invocation of the particular web service, which needs to be described during the
registration process.
Figure 3-3 shows the workflow for the registration process of a basic service
1
It may be composite inside the particular agency that supplies it, but from the point of view of I-eGS it
is a single service.
33
To register a service, the agency user accesses the system and begins selecting the
“repository of services” option. The system’s response is the list of registered services.
The user then selects the “Register Service” option, which generates a registration form
34
for a basic service and presents it as a web page. Such registration for requests
information about the new service such as: service name, service description, and the
WSDL file. Using the specified WSDL file, the system verifies if the provided service is
To execute the WS-I verification, we incorporated a WS-I test tool [26] into the
system. It reads the WSDL file for the service and verifies the interoperability of the
service by processing this file. The tool generates a report (see appendix A) that contains
information about the verification process. If the report produces a false response for the
interoperability of service, the report generated by the WS-I test tool is then made
accessible to the user for the proper analysis. If compliant, the system continues with the
that any basic service being registered complies with the expected scheme. During this
verification process the WSDL file is parsed using SAX (Simple API XML) parser in
order to extract crucial structural information about the particular service. Such
information includes: port type, operations, Input/Action, and Output/Action. Using this
• Service name: The system does not allow the registration of two or more web services
• Service operations: A web service must have at least one operation of type request-
response. This restriction was imposed since the system is implemented to support
message exchange in the way request-response pattern; however, other patterns could
• Output operation: The data type of the output of the service must be Base64Binary,
XML file. Each service must provide as response an XML document compliant with
the I-eGServiceInfo Schema depicted in Figure 3-4 and further described afterward.
follows:
• serviceresp element - the service response. We assume that any basic service
• typefile element - provides information about the certification file format: pdf, gif,
jpeg, etc.
Once the system has validated the WSDL file, the data about the service that is provided
by the user and that was extracted from the WSDL file, are stored in the system database.
Then, the system generates the stub classes and the client class for the basic service.
36
Stub classes are generated using the emitter tooling that Axis provides which
allows the generation of Java classes from WSDL and the client class is created from
scratch as a .java file in the system. All those new files are stored in a folder that is
owned by the particular agency registering the service. Stubs classes and the client class
are then compiled using javac. The .class files generated are stored in the same folder.
Once the .java files are compiled and stored in the server machine, the system asks for
more illustrative information about the service, for example: the description of the
meaning of each operation and inputs of the service. This information is requested in
Another important step in the registration process is to inform the system how to
treat each particular input attribute that the service requires from the citizen. Some
attributes are considered as attributes for which the value supplied may be used in future
requests, whilst others are treated as important only for the particular service. As a result
list of attributes about citizens that emerge on most of them, and hence we have
considered these as attributes whose values must be kept handy to be used in future
requests that may need them too. Whenever a future request is made, the system will
know if a particular attribute has a value for the particular citizen. If so, that value will be
used as the default value for the new request. The citizen will always have the
opportunity to change the corresponding values when filing the new request.
37
Those most common attributes have already been included as part of the I-eGS
database, in particular, as tuples in the citizen_attribute entity. When the new service is
being registered, the agency user has to inform the system whether each particular input
corresponds to any of those citizen attributes already stored in the system. Figure 3-5
38
shows the actual interface that I-eGS provides for this purpose. Those new attributes that
are not matched with attributes already existing in the citizen_attribute entity are treated
as important only for the particular service being registered and the values supplied are
After the relationships among service inputs and citizen attributes is established,
the agency user needs to set up in what order the corresponding input parameters will
appear in the input form corresponding to the service. Figure 3-6 shows the user
Finally, after a basic service has been completely configured by passing through
the previous process, the service must be activated. The system will then have the service
an agency user.
39
encapsulating other services previously registered in the system. These types of services
offer the citizen users an efficient way to get all certifications required by a particular
We now describe the process established by I-eGS for the composition of new
After the agency user enters the system, he or she selects the “Composition of
services” option, and a list of the composite services created by his/her particular agency
The user then selects the “new composite service” button and the system responds
by requesting information about the new service, such as service name and service
description. After a valid service name is supplied, the service is created. At this moment
the system allows the user to access composition wizard by choosing “composition”
option . The main window for the composition wizard is displayed (Figure 3-9).
42
Now the user must fulfill the requirements of each step defined by the wizard. In
The goal of this step is that the user selects the services that will be part of the
new service. In order to support the service selection, the system provides a mechanism
to perform service searches by service name or service agency provider over the service
repository. When a user selects a service to be part of the composition, the system
verifies if the selected service is part of a recursive circle in the composition. If it is so,
Figure 3-10 shows the screen shot for the selection of services. User interaction
with the system, during the service selection process, was developed keeping in mind the
usability guidelines for a shopping cart. Hence, the user can add and remove services
The conclusion of this step 1 is only possible when two or more services have
been selected to be part of the new service. If it is then the user can finish step 1 and
parameters with similar information, we provide a mechanism that allows the user to
establish relationships amongst input parameters of the services that are part of the
44
composition. For example, let’s assume the existence of a composed Service C which is
Service C
Services Input Parameter Meaning
d1 Social Security Number
d2 First Name
Service D d3 Second Name
d4 Last Name
d5 Second Last Name
h1 Num of receipt
h2 Social security Number
h3 First Name
Service H h4 Last Name
h5 Second Last Name
h6 Home Phone Number
h7 Mobile Phone Number
meanings are similar, for instance the meaning of the input parameter d1, Social Security
Number, is similar to the meaning of input of the parameter h2 for service H. Then the
service C must define a new input parameter composed by d1 and h2, in order to ask to
the citizen user for the social security number only once when the user requests service C.
H that allow to determine the new attributes for the service C could be defined as it is
Input
Meaning and association
Parameters
Social Security Number
c1 This attribute is associated with input d1 and h2 of their respective
services.
First name
c2 This attribute is associated with input d2 and h3 of their respective
services
Second name
c3
This attribute is associated with input d3 of service D.
Last name
c4 This attribute is associated with input d4 and h4 of their respective
services
Second Last name
c5 This attribute is associated with input d5 and h5 of their respective
services
Home Phone Number
c6
This attribute is associated with input h6 of service H.
Mobile Phone Number
c7
This attribute is associated with input h7 of service H.
I-eGS allows the user to establish the service new attributes by selecting the
related attributes and creating a new one using the selection (see Figure 3-11). For this
purpose, the user must provide the name for the new attribute and a short description for
it. When an attribute does not have a relation with any other service’s attribute, the
system creates automatically a new attribute exactly alike for the new service. Once the
agency user has established the relationship among input parameters, the system allows
to define the order in which the parameters will be asked to the user through a web form.
46
Finally, once this step is finished the user has to continue with the following step
“Verification of Service”.
47
The verification of a service is defined in order that a user can check that the
service was properly performed before releasing it. The user can modify only the
descriptive information that is associated with the input parameters of the new service.
When the user finishes step 3, the system enables the access to configure the service.
However an option is available if the user decides to make additional changes in the
The user can perform changes in the processes involved into step 1 and 2 only if
the service has not been used by an agency or a citizen. To modify the descriptive
system operations that are available under the own user rights. In section 3.3 we
described the main functionalities available for agency’s users. In this section we will
48
expose the main functionalities that the system provides for administrator and citizen
users.
and users. She or he is also responsible for maintaining and managing the basic
information that system needs to operate. The system allows the user administrator to
The user administrator is able to register an agency or/and office. This registration
process implies the creation of a folder into the system exclusively for the agency and/or
office. The folder created for an agency, stores all folders belonging to offices associated
with that agency. The stub classes and client classes of the services are stored into the
offices folders.
and inactivation of users (citizen users and agency users). Main window of user
administrators. All users can modify their personal information such as name, last name,
handled by most of governmental agencies is often the same. Many services provided by
In the registration process described in the section 3.3.1 is mentioned that the
system allows to associate the service input parameters to a specified citizen attribute.
Due to this the system enables this functionality to create, update or inactive citizen
Features described are the main functionalities that the system provides for a user
administrator. In the next section we will describe the main functions that the system
Once the citizen user is inside the system, she or he can access the information of the
services that he or she had used, or can request a new service. It is shown in Figure 3-15.
51
System can execute the search of a service using the service name or the name of
government agencies that provide the service. Once the user selects a service from the
search result list, the system shows the form associated to the service (see Figure 3-16).
The form contain fields associated with the input parameters defined for the selected
service. The user must fulfill the form in the correct way in order to allow the system to
process the request, sending to the pertinent services the data provided by the user.
The system verifies the data type of the user inputs. These must be valid based on
Once the verification is done, the service engine (described in section 3.5)
processes the user request and provides the answer to the user (see Figure 3-17). The
Name of certification
Description of certification
When the service that provides a certification is not available the system warns
the citizen with a warning signal and stores the failed request in the system.
The system stores the results of the execution of each service to dispose this
information for history of the system or when the user wants to request the same service
again. Users can access services results when they have the necessity.
This component has the responsibility to process the request to a service. Figure
3-18 provides a general perspective of the interactions established into the service engine.
54
In the following lines we describe how the system handles a service request.
When the user selects a service the ReqInfoServiceServlet handles the request by
information the system needs in order to process the service request. DataInputAnalizer
is a set of Java Beans that the system implements to get information about input
parameters of a service and the citizen’s information stored in the database system that
ReqInfoServiceServlet to a Java Server Page. This disposes all the recovered information
in a form that is displayed in the web browser in order that it can be filled by the citizen
user by providing the required information. Once the user has submitted the form an
through DataInputAnalizer gets information about the service. When the requested
55
the service, input parameters defined for each one of services involved in the composition
information about the input parameters of each service involved in the request. Once this
information is stored, the Controller instances a Worker Thread by each basic service
involved in the request, than means an instance for each service stored in the
Thread rearranges input parameters in the required order and creates an object array
with the values for each parameter. These values are equivalents to the information
provided by citizen user. An object array with the data type of input parameters is
created, as well.
• The service’s information is used to get the path where the service’s Stub classes and
Client class are stored. These classes are loaded into the Servlet container using a
class loader.
Once each Worked Thread executes the above tasks, it sends a SOAP request to
its service by instancing the service’s Client class using Java Reflection to sent a request
to the service and wait for the its response. Once the response is received by the
Controller, it waits until each invoked services had ended. The Controller know that is
56
ready to send a response to the user, when the number of services that had sending a
response is equal to the number of Worked Thread that it had invoked. If an exception is
launched during a service request, the system takes on the message Exception as a
response and informs to the user that the service is not available. The Controller will
process the respective answer for the user and finally send the information to
RepondServiceServlet which sends an HTTP response to the web portal so the citizen will
have the answer to the requested service. When a service is not available, system throws
an exception and stores this information to send a report to the agency provider.
57
CHAPTER 4
4. Functionality tests
that involve the possibility that several errors could be introduced during the development
process.
Due to this, the execution of a series of tests is a critical element that provides a
guarant regarding the software quality. Tests provide a way to determine the state of a
and codification.
1. Executing tests that allow to verify functionalities of the product. These tests are
called “black box tests” and it is imperative to know the specific functionalities the
product was designed for. Black Box Test cases aim to demonstrate the correct
2. Executing tests that allow to verify that each component of the product performs its
internal processes in an appropriate way. These tests are known as “white box tests”
and their test cases are oriented to perform specific sets of conditions and/or loops.
In the context of the present project a set of black box tests were carried out.
These aimed to verify behavioral aspects of the I-eGS system, by focusing on the
58
functional requirements that the system provides. In the following sections we describe
was constituted by seven machines that worked as government agency servers, where
agency services were located. Fifteen dummy Web services were prepared and
distributed in these machines. Table 4-1 lists the services with the corresponding agency
provider.
A desktop computer with an Intel Pentium processor at 2.66 GHz with 1024KB of
minimum requirements was used for simulate each government agency server.
I-eGS system was placed in a desktop computer with an Intel Pentium processor
at 2.80 GHz with 1024KB of Level 2 cache, 2 GB of RAM, and an IDE ATA/100 with
Machines used during the tests execution were located in the same network
segment.
greatest number of errors in a product, is not redundant, and is neither too simple or too
complex. [27].
In order to execute functionality tests to I-eGS, two test plans were defined. First
one checks the functionalities for government agencies’ users and the second one checks
the functionalities for citizen’ users. Both test plans were oriented to find errors such as
• Interface errors
Test plans were constructed taking into account the guidelines provided by IEEE-
829 Standard for Software Test Documentation [28]. These plans define activities that
allow users to make use of the system while they are trying to detect features that do not
work properly. Appendix A contains test plan designed to execute the black box tests.
software development would allow them to introduce intentional mistakes to verify the
system response.
information was used to make improvements in order to obtain a more accurate system.
Actions: It is necessary to provide more information during the execution of each step.
Documentation of the wizard must be published in the system in order that user can know
Actions: More flexibility in the wizard must be introduced. When the modification in a
step can not be performed, system must provide information indicating the reasons.
• Some messages that the system produces as a user response have no meaning
Actions: Messages that system produces as a user response must be verified and
• System does not indicate what information is required in a form. Sometimes, when
the user does not introduce required information into fields form, the system performs
Actions: Add a mechanism that allow user to know what information is strictly required.
CHAPTER 5
well as composition of new ones, is directly done by the government agencies, without
requiring human intervention at the portal site. The current version of the system is
capable of handling services that produce a final certification to the applicant after proper
Each agency is assumed to have a local system that is able to handle a service
request. To register that service into the portal, the agency needs to provide a Web
service that handles the interaction with their local implementation of the service. Web
services are registered into the system by submitting the corresponding WSDL files, from
where the necessary classes to invoke the service are automatically generated. The
system also supports the integration of existing services. This way, new services are
generated by combining other services and allowing transparent access to each of them,
regardless of the agencies involved. So, in the actual version, this means that a bunch of
certifications can be produced as a result of one application and with the applicant being
wizard, which is aimed to guide agency users during the composition of new services.
63
Through this component, the agency users are able to pick services that will be part of a
composition. It further supports the integration of the selected services by allowing the
agency user to combine attributes corresponding to the same data in the different services
being combined, Finally an integrated application form generated for each composite
From the point of view of citizens, the system acts as a Web portal from where
government services can be requested, the system hides details as to what agencies might
have to cooperate in complying with the requests. With the goal of supporting a more
agile process whenever an individual comes back to use the system in the future, the
system keeps a specialized database that stores relevant data about those citizens that
have used the system. These data will be ready to be used by the system , as default data,
similar goals as ours, at least from the point of view of the citizens. It differs from ours
in several aspects. One is that the requests are forwarded to the particular agency in
charge of providing the particular certification being requested and such agency mails the
final certification to the requester through regular postal mail. Furthermore, the process to
register new services to be presented to the citizens needs the human intervention at the
We feel that the I-eGS as it is now is a valuable tool upon which more relevant
work on integration of government services can be done. One important aspect that still
needs to be more rigorously explored is the security issue. The current version of I-eGS
implements its security at the application level, but other approaches need to be taken
64
into consideration in order to provide the necessary security robustness. This will be
crucial if we want citizens to be more willing to use the system and to provide his/her
estimate and total up the equivalent money value of the benefits and costs a system like
REFERENCES LIST
[5]. Graham, Steve., Simeonov, Simeon., Boubez, Toufic., Daniels, Glen., Davis,
Doug., Nakamura, Yuichi., and Neyama, Ryo. Building Web Services with Java.
Second Edition, 2005. Sams publishing. 2005
[6]. Simon. W, Graham. M and Simon. P. Portal Replication for Web Application
Availability Via SOAP. The Eighth IEEE International Workshop on Object-
Oriented Real-Time Dependable Systems, 2003.
[7]. Christensen, E., Curbera, F., Meredith, G., and Weerawarana, S. Web Services
Description Language (WSDL) Version 1.1, W3C Note, March 2001;
www.w3.org/TR/wsdl.html.
[8]. UDDI Spec Technical Committee, UDDI Version 3.0.2, October 2004;
http://uddi.org/pubs/uddi-v3.0.2-20041019.htm
[9]. Weerawarana, S., Curbera, Francisco., Leymann, Frank., Storey, Tony., and
Ferguson, Donald F. Web Service Platform Architecture. Prentice Hall, 2005
[10]. Endrei, Mark., Ang, Jenny., Arsanjani, Ali., Chua, Sook., Comte,
Philippe., Krogdahl, PŒl., Luo, Dr Min and Newling, Tony. Patterns: Service-
Oriented Architecture and Web Services red book. First edition. International
Business Machines Corporation, 2004.
[16]. Codd, E.F., A Relational Model of Data for Large Shared Data Banks,
Communications of the ACM, vol. 13, no. 6, pp. 377-387, June 1970.
[17]. Singh, Inderjeet., Stearns, Beth., Johnson, Mark., and The Enterprise
Team. Designing Enterprise Applications with the J2EE Platform, Second
Edition.
[20]. Cherrie W.W. Ng and Dickson K.W. Chiu. e-Government Integration with
Web Services and Alerts: A Case Study on an Emergency Route Advisory System
in Hong Kong. Proceedings of the 39th Hawaii International Conference on
System Sciences, 2006
[24]. Acuña, Cesar J., Marcos, Esperanza., Gómez, Juan M., and Bussler,
Christoph. Towards Web Portal integration through Semantic Web Services.
International conference on next Generation Web services Practices, 2005.
[28]. IEEE Std 829-1998 IEEE Standard for Software Test Documentation.
67
2 Description
Test plan is composed by four main steps. It must be fulfilled following the specified
order.
This plan test will verify the correct operation for:
Register, update and delete information citizen attributes
Register of basic services
Integration of services
Update of information related to services
Links between pages.
Java Script code for HTML pages.
Response of the system for possible user errors.
3 Test environment
Hardware and software required to the execution of this test plan is listed below:
• Hardware: To execute this test is required a Server machine, two client computers.
Server has to be accessed by clients through a HTTP connection.
• Software
Server Machine
Linux System Operator
Apache Tomcat Web Server 5.1
MySQL 5.1
69
Axis 1.4
JDK 1.5
SAX Parser
Client Machines
Browser with HTML 4.01, CSS 3.0, AJAX.
4 Observations
The kind of mistakes detected during the test execution will be determinate if the test
must be restarted or suspended. Test will be suspended when an exception at the
application level occurs, database connection errors, HTTP connections errors or script
errors on the server side. Test will be restarted when the errors detected are related with
typos. In the case of a test suspension, please write the cause to continue:
5 Test Execution
The following information will be required to execute the test procedure. Files provided
contain definitions of services that an agency could provide
6 Test procedure
I-eGS provides to a government agency the necessary functionalities to register Basic
services and create new ones. In the following subsection you will found a set of
70
activities that you must perform. Please, try to introduce possible user mistakes or
execute operations that you think the system must avoid or permit.
A basic service is a service provided by a government agency. System must support the
registration of these services by means of the WSDL file of the respective service. A
composed service is a service that is composed by two or more services. I-eGS will
guide you during the creation of a composed service.
Observations:____________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
select the Composition option so that you can access to the Composition Wizard
which has established three steps.
Step 1: In this step you must select the services that will part of the new service.
71
Observations:____________________________________________________________
________________________________________________________________________
________________________________________________________________________
Step 2: In this step you must define the input parameters for the new service.
Observations:____________________________________________________________
________________________________________________________________________
________________________________________________________________________
Step 3: In this step you can modify the registration information of the service.
Observations:____________________________________________________________
________________________________________________________________________
________________________________________________________________________
After finished the third step, try to modify the definition of your service, adding a new
service, modifying the attributes that you previously defined.
Observations:____________________________________________________________
________________________________________________________________________
________________________________________________________________________
7 Report of results
Please fulfill the following table base on the actions that you executed previously
If you have any suggestion that you consider will contribute to improvement of the system
please write them at the last page of this document.
73
2 Description
Test plan is composed by four main steps. It must be fulfilled following the specified
order.
This plan test will verify the correct operation for:
Request of basic services
Request of composition services
Reuse of the information among services
Storing of history of services
3 Test environment
Hardware and software required to the execution of this test plan is listed below:
Hardware: To execute this test is required a Server machine, two client computers.
Server has to be access by clients through a HTTP connection.
Software
Server Machine
Linux System Operator
Apache Tomcat Web Server 5.1
MySQL 5.1
Axis 1.4
JDK 1.5
SAX Parser
Client Machines
Browser with HTML 4.01, CSS 3.0, AJAX support.
74
4 Observations
The kind of mistakes detected during the test execution will be determinate if the test
must be restarted or suspended. Test will be suspended when an exception at the
application level occurs, database connection errors, HTTP connections errors or script
errors on the server side. Test will be restarted when the errors detected are related with
typos. In the case of a test suspension, please write the cause to continue:
5 Test Execution
The following information will be required to execute the test procedure.
6 Test procedure
I-eGS provides the citizen access to the services that government agency provide. Citizen
can execute searches in the system and requests the services by providing the required
information. System stores some selected information provided by the citizen in order to
be reused in other services that required the same information.
Observations:____________________________________________________________
________________________________________________________________________
________________________________________________________________________
________________________________________________________________________
7 Report of results
Please fulfill the following table base on the actions that you executed previously
If you have any suggestion that you consider will contribute to improvement of the system
please write them at the last page of this document.