from mainframe to cloud computing: a study of programming paradigms with the evolution of...
TRANSCRIPT
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
1/7
From Mainframe to Cloud Computing: A Study ofProgramming Paradigms with the Evolution of Client-Server ArchitectureDost Muhammad Khan1, Nawaz Mohamudally2
1Assistant Professor, Department of Computer Science & IT, The Islamia University of Bahawalpur, Pakistan & PhD student,
School of Innovative Technologies & Engineering, University of Technology, Mauritius
2Associate Professor & Consultancy & Technology Transfer Centre, Manager, University of Technology, Mauritius (UTM)
Abstract
The rapid growth of distributed computing architectures createsnew approaches and opportunities for the software engineers todevelop new programming and structured information processingwithin an organization. New computing architectures provide the
technologies that enable organizations to reengineer theirbusiness processes and the dominant of these new architecturesfor information processing is client-server architectures. Theclient-server systems have evolved in conjunction with advances
in desk-top computing, new storage technologies, improvednetwork communications, and enhanced database technology.New development in client-server is allowing developing on-linebusiness systems with all the possible implementations that was
dream of a few years ago. The wide spread of networks, and inparticular, of networks connected to each other, as the Internet,has imposed new needs that required new paradigms and new
technologies. There are several network technologies availablewhich support user-level communication between processing ashared-memory. The client-server architectures are commonly
used in distributed environment due to optimization, modularly,no wastage of resources, reliability, availability and providesgraphical user interface aid. This paper presents a study of theprogramming paradigms with the evolution of client-server
architecture from mainframe to cloud computing.
Keywords:Agent-Oriented Programming, Object-OrientedProgramming, Lightweight Programming
1. Introduction
Client-Server architecture is an environment that satisfies
the business needs by appropriately allocating the
application processing between the client and the server
processors. The client requests services from the server;
the server processes the request and returns the result to
the client [1][2][3][4][5]. Figure 1 depicts typical client-server architecture.
Fig. 1 A Client-Server Architecture
One of the primary advantages of client-server model is
that as data storage needs grow without affecting clients
the way data is stored can be changed. The middle layer of
system is commonly referred to as the application server
can thus concentrate on centralizing business rule
processing. The client-server model is based on the idea
that one computer specializing in information presentation
displays the data stored and processed on a remote
machine. The client-server environment demands
graphical user interface and network communications. A
multi-user application is a slight variation on the typical
client-server application. The only difference is thatinformation passes from one client through the server to
other clients. On a typical client-server application,
information flows only from the client to the server and
then back. In an ideal environment, the server side of the
application handles all common processing and the client
side handles user-specific processing [3]. Strengths and
weaknesses of client-server architecture are discussed in
table 1.
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 21
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
2/7
Table 1: Strengths and Weaknesses of Client-Server
Strengths Weaknesses
Highly interactive Fat Client
Graphical User Interface(GUI) aid
High Cost
Modularly Data interaction and business rulesmoved to client
The software process model applied for client-server
systems has closely resemblance with object-oriented
approaches. The developer has to describe objects,
database and application components. In the analysis and
design part of client-server systems, one has to use data-
flow, entity-relationship diagrams, structures charts and
other notations. The testing phase has to be modified by
examine network communication and the relationships
between software that resides both on client and server.
The client-server environment demands dedicated testing
tools that exercise the graphical user interface and the
network requirements for both client and server. The
components namely user interaction and presentation,
application component and database management aremajor parts of testing tools. To access many servers
applications from a client machine, through a common
interface, typically a browser is called a middleware,
which exists in all client-server systems, also known as
nervous system of client-server system. Middleware is
comprised of software elements that exists on both client
and server and includes elements of network operating
system as well as specialized application software that
supports database-specific applications, object-request
broker (ORB) standards group technologies,
communication management and other features that
facilitate the client-server connection. There are different
configurations for the distribution of software components,which are: Distribution presentation, Remote presentation,
Distributed logic, Remote data management and
Distributed databases. The common linking mechanisms
used to connect the various components of the client-
server architecture are: Pipes, Client-Server SQL
interaction, CORBA, RMI, ORB, DEC and many more.
These technologies allow the distribution of processing
across multiple processors and platforms [3].
The rest of the paper is organized as: Section 2 is an
overview of client-server architectures, namely, Code-on
Demand, Remote Procedure Call (RPC), Simple Network
Management Protocol (SNMP), Mobile Intelligent Agentand Cloud Computing, section 3 is about the results and
discussion whereas conclusion is drawn in section 4.
2. Overview of Client-Server Architectures
In this section we will discuss commonly used client-
server architectures such as Code-on Demand, Remote
Procedure Call (RPC), Simple Network Management
Protocol (SNMP), Mobile Intelligent Agent and Cloud
Computing.
2.1 Code-on Demand
The Code-on Demand paradigm allows nodes to request
programs from other nodes. An application of this
paradigm is the world wide web where browsers routinely
download code from remote sites. The idea is that a host
is only required to execute a program when it explicitly
demands the program. The best known example of such
functionality is that provided by the JAVA language, as
embedded within HTML. A user with a JAVA-
compatible browser can request HTML pages that contain
applets. These applets are downloaded along with all
other images, text, forms, etc. and once downloaded, are
executed on the users machine. The destination itself
initiates the transfer of the program code. The client
becomes thin, where most of the application resides and
runs on the server. It has no hard disk, it is a networkcomputer and easier to use and more reliable [6]. Figure 2
illustrates the working of code-on demand.
Fig. 2 Function of Code-on Demand Paradigm
The explanation of figure 2 is that client requests to a
server for a code, the server in response acknowledge the
clients request but instead of transferring the code, coderesides and runs on the server.
2.2 Remote Procedure Call (RPC)
A remote procedure call (RPC) also known as remote
method invocation (RMI) is a protocol that allows a
computer program running on one host to cause code to be
executed on another host without the programmer needing
to explicitly code for this. RPC is an easy and popular
paradigm for implementing the client-server model of
distributed computing. An RPC is initiated by the client;
sending a request message to the server, to execute a
certain procedure using arguments supplied, in response to
this message a result message is returned to the client. It is
based on extending the notion of conventional or local
procedure calling, so that the called procedure need not
exist in the same address space as the calling procedure.
The two processes may be on the same system, or they
may be on different systems with a network connecting
them. By using RPC, programmers of distributed
applications avoid the details of the interface with the
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 22
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
3/7
network [7]. The function of Remote Procedure Call
(RPC) is illustrated in figure 3.
Fig. 3 Function of Remote Procedure Call (RPC) Paradigm
The explanation of figure 4 is that local procedures are
executed on Machine A; the remote procedure is actually
executed on Machine B. The program executing onMachine A will wait until Machine B has completed the
operation of the remote procedure and then continue with
its program logic. The remote procedure may have a return
value that continuing program may use immediately.
2.3 Simple Network Management Protocol (SNMP)
Simple Network Management protocol is a standard for
gathering statistical data about network traffic and the
behavior of network components. It is an application layer
protocol that sits above TCP/IP stack. It is a set of
protocols for managing complex networks. It enables
network administrators to manage network performance,find and solve network problems and plan for network
growth. It is a request/response type of protocol,
communicating management information between two
types of SNMP entities, one application is called
Manager, which issue queries to get information about
the status, configuration and performance of external
network devices and the second application is Agent,
which compliant devices; store data about themselves in
MIBs (Each agent in SNMP maintain a local database of
information relevant to network management is known as
the Management Information Base) and return this data to
the SNMP requesters [8][9]. The working of SNMP is
illustrated in figure 4.
Fig. 4 Function of SNMP Paradigm
The explanation of figure 4 is that the agent is software
that enables a device to respond to manager requests toview or update MIB data and send traps reporting
problems or significant events. It receives messages and
sends a response back. An Agent does not have to wait for
order to act, if a serious problem arises or a significant
event occurs, it sends a TRAP (a message that reports a
problem or a significant event) to the manager (software in
a network management station that enables the station to
send requests to view or update MIB variables, and to
receive traps from an agent). The Manager software which
is in the management station sends message to the Agent
and receives a trap and responses. It uses User Data
Protocol (UDP, a simple protocol enabling an application
to send individual message to other applications. Deliveryis not guaranteed, and messages need not be delivered in
the same order as they were sent) to carry its messages.
Finally, there is one application that enables end user to
control the manager software and view network
information [8][9].
2.4 Mobile Intelligent Agent
The term Mobile Intelligent Agent is derived from two
different disciplines, term agent is created from Artificial
Intelligence and code mobility is defined from the
distributed systems. An agent is an object which has
independent thread of control and can be initiated. Every
agent looks like an object, when an agent is implementedin its frame work, it works as an independent thread and
can be initiated from the server for execution according to
its execution plan. This makes an Agent different from an
ordinary object. Mobile intelligent agents are program that
can be dispatched from one computer and delivered to a
remote computer for execution. They are capable of
autonomous actions in pursuit of a specific goal.
Autonomy in agents implies that the software agent has
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 23
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
4/7
the ability to perform its tasks without supervision, or at
least with minimum supervision, in which it will be a
semiautonomous software agent. Its autonomy
distinguishes it from general software programs. Mobile
agents are capable to perform concurrency, client-server
asynchrony, reduce network usage (bandwidth +
frequency), installation of client-specific interfaces and
dynamic interface upgrades. The client becomes smart,an Internet-connected device that allows the users local
applications to interact with server-based applications
through the use of web services. It supports work offline.
It can be deployed and updated in real time over the
network from a centralized server. It supports multiple
platforms and languages because of web services. It runs
on any device that has Internet connectivity, including
desktop, workstations, note books, PDAs and mobile
phones [10][11][12][13]. The basic working of a mobileagent is depicted in figure 5.
Fig. 5 Function of Mobile Intelligent Agent
The explanation of figure 5 is that Computer A and
Computer B are connected via a network. In step 1 a
mobile agent is going to be dispatched from Computer A
towards Computer B. In the mean time Computer A will
suspend its execution. Step 2 shows this mobile Agent is
now on network with its state and code. In step 3 this
mobile Agent will reach to its destination, computer B,
which will resume its execution.
The following are areas but not limited to where mobileintelligent agents can be applied:
1. Distributed Computing: Mobile agents can beapplied in a network using free resources for their
own computations.
2. Collecting Data: A mobile agent travels aroundthe net. On each computer it processes the data
and sends the results back to the central server.
3. Software Distribution and Maintenance: Mobileagents could be used to distribute software in a
network environment or to do maintenance tasks.
4. Mobile agents and Bluetooth: Bluetooth is atechnology for short range radio communication.
Originally, the companies Nokia and Ericsson
came up with the idea. Bluetooth has a nominal
range of 10 m and 100 m with increased power.
The applications for mobile agents are myriads.
5. Mobile agents as Pets: Mobile agents are theideal pets. Imagine something like creatures.
What if you could have some pets wandering
around the internet, choosing where they want to
go, leaving you if you dont care about them or
coming to you if you handle them nicely? People
would buy such things wont they?
6. Mobile agents and offline tasks: Mobile agentscould be used for offline tasks such as, an agent is
sent out into the internet to do some task, and the
agent performs its task while the home computer
is offline and returns with its results. Mobileagents could be used to simulate a factory,
machines in factory are agent driven, agents
provide realistic data for a simulation, e.g.
uptimes and efficiencies, and simulation results
are used to improve real performance or to plan
better production lines [14][15].
2.5 Cloud Computing Paradigm
It is a new type of distributed computing still emerging
field in computer science. The remote machines owned by
other company which will run everything for the user is
called cloud computing. It will change entire computerindustry. The only thing the user has to run interface
software of cloud computing system. There is a significant
workload shift i.e. the users computer will not run the
applications. It will decrease the demand of hardware and
software. There is no limit of its applications. Everything
can be done through cloud computing. The major
advantage of this is the client can access his data any
where at any time. It will reduce the need for advanced
hardware which will bring the cost of hardware down. The
client can take the advantage of network processing power
if the cloud computing is using a grid at its back end. This
is a step backward to early computers having only
keyboard and terminal. The major issues in cloud
computing are: Data governance: Enterprises have
sensitive data that requires proper monitoring and
protection, moving data into cloud enterprise will lose
their governance on own data. Manageability, Monitoring,
Compliance, Cross-country Data migration, Reliability,
availability and recovery and Security and privacy: are
major concerns and issues in cloud computing. Figure 6
depicts the cloud computing paradigm.
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 24
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
5/7
Fig. 6 Cloud Computing Paradigm
The followings are the advantages of cloud computing
paradigm:1. It provides small and medium businesses a
break to access web based advance tools as aresource. By grace of cloud, technology accessis no more a prime expenditure, as it is sameas your other utility services (Electricity,Telephone) you are going to pay just for whatyou have utilized, nothing more. Thats howcloud saves cost on important businessapplications and managed by SLA.
2. On one hand where the cloud makes bettersecurity and observation within a central dataaccess, besides, it provides usage of automatedsystem interfaces. User does not need to careabout backend engineering, maintenance andtroubleshooting of ongoing operations.
3. The idea is flourishing every coming day withgreat success in the upcoming time, as nowoffshore services are well-liked more than everand industrialists are putting their money inthe low capable countries in term oftechnology advancement and then sending offtheir cloud computing environment worldwide.
4. In cloud computing, customers using webapplications, access the environment andservices retained by a third party. As a result,the idea of offshore software development inleast economic IT countries is running atenormous pace as developers can access theutility worldwide, at any time from a handhelddevice, PC, or a laptop, history making.
5. Cloud computing is a thought that is based ontransforming the stack of IT away from firmsinto the hands of cloud providers. It buttressesa culture of modernization by eradicating amajor fraction of the economic risks linkedwith bearing out archetype of new ideas[16][17[18].
3. Results and Discussion
In code-on demand based client-server architecture, the
client becomes thin; which has no hard disk, a network
computer, easier to use, reliable and it supports the
centralized and synchronous with no autonomy network
management. In simple network management protocol, theclient becomes fat; which has its local databases, harder to
deploy, runs slowly and it also supports centralized
network management. In remote procedure call, the client
is fat; which consume heavy network bandwidth and it
supports distributed, synchronous and less autonomous
network management. In mobile agent based client-server
architecture, the client becomes smart; which supports
work offline, can be deployed and updated in real time
over the network from a centralized server, supports
multiple platforms and languages because of web services
and runs on any device that has Internet connectivity,
including desktop, workstations, note books, PDAs and
mobile phones. The cloud computing is a new and
emerging paradigm which although supports smart clientbut also consume heavy bandwidth, which has only the
user interface to interact with the cloud and has no
processing power and no storage capacity, all the data is
processed and stored in the cloud. It supports centralized
network, uses both synchronous and asynchronous mode
of communications and also uses both TCP and UDP as
transport protocols. Table 2 presents a comparison of
client-server architectures discussed in this paper.
CORBA and Microsofts (OLE, COM, DCOM and
ActiveX, and many more) objects are around for years.The concept of mobile agent is over a decade old, the
technology proves not to be perfect yet; researchers are
now developing methods for improving the technology,
with more standardization, better programming
environments, as well as design patterns that allow mobile
agents to be used in products. It is obvious that the more
an application gets intelligence, the more it also gets
unpredictable, dangerous and uncontrollable. The mobile
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 25
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
6/7
agents in most aspects are also considered to be a new
programming paradigm. The concept of cloud computing
is very new, there are some privacy and security issues
that put a stop to widespread use of cloud. The center of
attention in cloud development is the evolving of the cloud
from the indoors (private cloud) to outdoors (public cloud).
Table 3 shows different programming paradigms with the
evolution of client-server architecture.
The first generation of programming was machine
programming, the structural unit was called a program,
it was an era of mainframe computers where one machine
was connected with many users having dump terminals atthe same time i.e. it was one-to-many interface. The next
generation was structured programming, the structural
unit was known as subroutine, it was an era of personal
computers where one user could connect with one
computer at a time i.e. it was one-to-one communication.
The succeeding next generation was object-oriented
programming (OOP), the structural unit was identified as
an object, it was an era of networked computers where
many users having personal computers could connect with
one main server at a time i.e. it was many-to-one
interaction. The subsequent next generation was agent-
oriented programming (AOP), the structural unit was
known as agent, the agent has the same properties like an
object but only differ in its autonomous, proactive,
intelligence and mobile behavior, it is an era of the people
where many users are interacting with many intelligent
devices at the same time i.e. it is many-to-many
communication. There are not many applications that use
mobile agents, so it hard for this technology to become
widely adopted. Most work had been around the agents
framework instead of developing the real applications. The
client-server architecture and paradigm is well understood
and quite mature as a technology, but the area of
distributed control of mobile agent systems is still the
subject of many research efforts. An agents envisioned
autonomous behavior, involving collaboration with other
agents at various network locations, creates a dynamic
environment that requires new design methodologies and
modeling tools to properly formulate and construct agent-
based system. The latest generation of programming is
lightweight programming, the structural unit is called a
lightweight program and we are in the era of the people
where many people can interact with many intelligent
devices at the same time i.e. it is many-to-many
communication. The codes to add two integer numbers are
shown as an example in table 3 in all five programming
paradigms. These lines of code are a program in
Assembly Language, subroutines in FORTRAN 77, a
class in Java, an agent in Kaariboga Java based Agent
framework and finally a lightweight program in Phobos
framework. This shows the changes in codes one
programming paradigms to other.
4. Conclusion
In this paper, we discuss five different client-server
architectures namely code-on demand, remote procedure
call, simple network management protocol, mobile
intelligent agent and cloud computing, and finally draw a
comparison of these client-server architectures and their
corresponding programming paradigms. First three
architectures are based on centralized network, they are
less autonomous, synchronous and use heavy network
bandwidth, mobile intelligent agent architecture is basedon distributed, asynchronous execution and autonomy,
robust and fault-tolerance behaviour, works in
heterogeneous environment, reduces network traffic and
overcomes network latency and the cloud computing is
based on centralized network and supports both
synchronous and asynchronous communications. The
increasing popularity of distributed heterogeneous network
and the Internet has created new technologies that lead a
system to be based on some form of mobile agent and
cloud computing. The ever growing amount of data that
are stored in distributed form over network of
heterogeneous and autonomous sources poses several
problems such as communication minimization, autonomy
preservation, scalability and privacy protection, therefore,
mobile intelligent agents are autonomous, capable of
adaptive and deliberative in nature are the best choice to
solve these problems of distributed systems. Now the trend
that every thing will be in a cloud increases the popularity
and usage of cloud computing. We conclude our paper that
with the advent of new client-server architecture based
technologies require the changes in programming
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 26
-
8/3/2019 From Mainframe to Cloud Computing: A Study of Programming Paradigms with the Evolution of Client-Server Archit
7/7
paradigms. At the evolutionary stage of each paradigm and
then continuing to deploy applications will reach at critical
mass before it becomes effectively main stream but that
day is coming.
Acknowledgment
The authors are thankful to The Islamia University of
Bahawalpur, Pakistan for providing financial assistance to
carry out this research activity under HEC project 6467/F
II.
References[1] Somerville, Ian., Software Engineering, 6th Edition,. ISBN:
020139815x, 2001[2] Pressman, R.S., Software Engineering: A Practitioners
Approach, 6/e, ISBN: 0072853182, 2005[3] Lethbridge, T.C. ,and Laganiere, R., Object-orientedSoftware Engineering: Practical Software Development using
UML and Java 2/e, ISBN: 0077109082McGraw Hill, 2001[4] Reis, Christian Robottom, Fortes, Renata Pontin de Mattos,An Overview of the Software Engineering Process and Tools inthe Mozilla Project, Brazil 13560-970, February 8, 2002.[5] Coulouris, George., Dollimore, Jean., and Hindberg, Tim, Distributed Systems Concepts and Design Third Edition,ISBN: 0201619180, 2000.
[6] Laul, F.C.M, Berlaramani, N., Kwan, V.W.M., Siu, P.P.L.,Wing, W.K. and Wang, C.L., Code-on-demand and code
adaptation for mobile computing, Department of ComputerScience, The University of Hong Kong.
[7] Darby, Chad., Griffin, John., Haan, Psacal den., Haan, Peterden., Konstantinou, A.V., Li, Sing., MacLean. Sean., Mitchell II,G. E., Peach, Joel., Wansch, Peter., and Wright, William. ,
Beginning Java Networking, Wrox Press. ISBN: 81-7366-399-8, 2001.[8] Stallings, W., SNMP, SNMPv2 and RMON: Practical
Network Management,Addison-Wesley 1999.
[9] Stallings, W., SNMP and SNMPv2: The Infrastructure forNetwork Management, IEEE Communications Magazine, vol.36, n_3, p. 3743, March 1998.
[10] Ichiro, S., Reusable Mobile Agents for Cluster Computing, National Institute of Informatics. URLhttp://www.cs.hku.hk/cluster2003/presentation/technical/4B-1.pdf, 2003[11] Lang, D.B., Mobile Agents: Environments, Technologies,
and Applications, In Proceedings of the Third InternationalConference on the practical Application of Intelligent Agents and
Multi-Agent Technology,11-14, The Practical ApplicationCompany. 1998.
[12] Ichiro, S., Selection of Mobile Agents, 24th IEEE,ICDCS 2004.[13] Bigus, J. P., Constructing intelligent agents using JAVA 2nd ed, ISBN: 0-471-39601-X. 2001.[14] Gray, R., Cybenko, G., Kotz, D., and Rus, D., Mobile
Agents: Motivations and State of the Art, Handbook of Agent
Technology, AAAI/MIT Press,2002,URLhttp://citeseer.ist.psu.edu/context/1209666/0.[15] web site at URL: www.agentlab.de/aose.html
Dost Muhammad Khan: M.Sc.(Computer Science) from B.Z.University, Multan, Pakistan. Currently PhD Student at SITE, UTM,Mauritius. Assistant Professor Department of Computer Science &IT, The Islamia University of Bahawalpur, Pakistan. Published 5research papers in International Conferences & Journals. Fields ofinterest are Data Mining, Intelligent Agent, and Object RelationalDatabase Management.
[16] Y. Chee, B. Rajkumar, D. Marcos, Y. Jia, S. Anthony, V.Srikumar, P. Martin, Utility Computing on Global GridsChapter 143, Hossein Bidgoli (ed.), The Handbook of ComputerNetworks, ISBN: (978-0-471-78461-6, John Wil ey & Sons,
New York, USA, 2007.[17] Satyanarayanan. M., Fundamental Challenges in MobileComputing, School of Computer Science, Carnegie Mellon
University, Proceedings of the fifteenth annual ACM symposiumon Principles of distributed computing Philadelphia,Pennsylvania, United States, Pages: 1 7, ISBN:0-89791-800-2[18] Satyanarayanan. M., Pervasive Computing: Vision andChallenges, School of Computer Science, Carnegie MellonUniversity, Personal Communications, IEEE, August 2001,Volume: 8, Issue: 4 On page(s): 10-17, ISSN: 1070-9916
JOURNAL OF COMPUTING, VOLUME 3, ISSUE 12, DECEMBER 2011, ISSN 2151-9617
https://sites.google.com/site/journalofcomputing
WW.JOURNALOFCOMPUTING.ORG 27