Friday, February 10, 2012

Roman Number Converter - Java Program

This is a simple Java program to convert Roman numbers to Hindu-Arabic numbers. This Java method "convertRomToInt()" gets the Roman number as a string and converts it in to corresponding Integer value.
Even though this program seems simple, the algorithm is bit complex. When we convert a Roman number to Hindu-Arabic number manually, we do it in the following manner.
MCMXLIV = 1000 + (1000 − 100) + (50 − 10) + (5 − 1) = 1944
Value of each number is added together. When smaller values precede larger values, the smaller values are subtracted from the larger values, and the result is added to the total.
This algorithm use above technique to the conversion. "for" loop gets each character of the roman number string from the beginning and gets its integer value from the "getInt()"  method. At each iteration character is compared with the next character value. If the next character is the same, the value is added to mediator to add in the next iteration. If it is large, the value is added to mediator to subtract in the next iteration.


Saturday, January 7, 2012

GSM, GPRS, EDGE, WCDMA and HSPA


         
                Today I am going to discuss about something which you are really familiar. If you are using any wireless modem or mobile phone you may have used these words. But most of the people don’t have a clear idea what those technical acronyms stand for even though they frequently use it.



GSM
Global System for Mobile Communications (GSM) is a digital cellular phone technology. This includes set of standers to support the 2G digital cellular networks. 2G is the replacement of first generation analog cellular networks. GSM operates with TDMA (Time Division Multiple Access) technology based on circuit switching network. TDMA technology interleaves multiple digital signals on to high speed data channel. GSM supports voice calls and data transfer (SMS) speed up to 9.6kbit/s. Today GSM networks have spread over 218 countries worldwide and it allows the international roaming capability.
Mobile phone or any device which supports GSM technology includes a SIM (Subscriber Identity Module) card. This smart card has programmed so that it contains the details of the user account information.


GPRS
General Packet Radio Service (GPRS) is an improved data service in GSM networks. GPRS added a packet data transfer capability to circuit switched GSM networks. GPRS enables data rate up to 40 kbit/s. MMS, instant messaging and WAP are few services are offered by GPRS technology. 2G cellular technology together with GPRS is sometimes called 2.5G which described as a transition of 2G to 3G mobile telephony.


EDGE
Enhanced Data rates for GSM Evolution (EDGE) is a further enhancement of GPRS and GSM network technologies. EDGE is four times efficient than GPRS technology. GPRS uses four coding schemes (CS-1 to 4) while EDGE uses nine modulation and coding schemes (MCS-1 to 9). The normal data rate of EDGE is 40-50 kbps per timeslot and maximum is 40-50 kbps per timeslot. EDGE technology supports both circuit and packet switching techniques. EDGE technology can provides all the capabilities of the GPRS and directly map with the structure of the GSM network. Therefore EDGE is called backward compatible technology. No any changes are required for the existing GSM network for use of EDGE except the installation of EDGE transceiver at base stations. EDGE is only a software upgrade with GSM technology. EDGE cannot work without GSM technology, because EDGE networks are built upon the GSM networks. EDGE has all the requirement for the 3G standers and it is accepted as a 3G network technology.


WCDMA
Wideband Code Division Multiple Access (WCDMA) is a third generation (3G) cellular network technology. This technology has much higher data speed than the previous technologies which has described above. The data rates of the WCDMA technology are 2 Mbps for local area networks and 384 kbps for wide area networks. Even though it uses the same cored network as the GSM/GPRS/EDGE, WCDMA transmits on a pair of 5 MHz wide radio channels. WCDMA works with both frequency division duplex (FDD) and time division duplex (TDD). WCDMA provides mobile multimedia services such as music, tv/video image and internet access in addition to the voice, text and MMS services.



HSPA
High Speed Packet Access (HSPA) is a mobile wireless technology which represents the 3.5G family. HSPA is a combination of HSDPA (High Speed Downlink Packet Access) and HSUPA (High Speed Uplink Packet Access)  technologies. HSPA uses FDD transmission scheme. HSPA rates are 1 to 4 Mbps and HSPA uplink speeds are 500 kbps to 2 Mbps. But theoretically peak speed of downlink is 14 Mbps and the peak speed of uplink is 5.8 Mbps in a 5 MHz channel. HSPA is backward-compatible with UMTS, EDGE and GPRS. Besides the speed the advantage of the HSPA is the low cost of transmission for a data unit.



Friday, September 2, 2011

What is Cloud Computing...





Cloud Computing is a new concept which was recently came popular in computer industry. The main idea of cloud computing is the sharing of computing recourses among a community of users. The concept of cloud computing immerged in 1960s, when Johon McCarthy opined that "computation may someday be organized as a public utility”. The Condor project that started in 1988 at the University of Wisconsin-Madison was the successful implementation of Cloud computing concept. This project was motivated by the observation that a high percentage of the capacity of user’s workstations is idle while their users are away of their offices or doing other tasks such as reading or talking on the phone. These idle cycles can be harvested by the Condor system and made available to users who need more computing power than that available to them at their local workstations. In present Cloud computing developed as a web-based computing technology that offers a degree of freedom in the establishment of IT infrastructure. 
This paper discusses the concepts of cloud computing starting from the definition. Then it discusses advantages, disadvantages and the challenges of the cloud computing.



What is Cloud Computing- Definition
The term “cloud” is a metaphor to “Internet”. The Cloud computing defined as a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, server storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Cloud computing customers do not own the physical infrastructure rather they rent the usage from third party provider. They consume resources as a service and pay only for resources that they use. Most cloud computing infrastructures consist of services delivered through common centers and build on severs. Sharing resources amongst can improve the speed of computing when the servers are unnecessarily left idle.
Present Many companies like Google, Microsoft and Salesforce.com are delivering services from the cloud. Google has a private cloud which gives their services like email services, document applications, text translations and maps. Microsoft Sharepoint online service allows for application tools to be moved into the cloud, and Microsoft currently makes its office applications available in a cloud.

Service Models of Cloud computing
Cloud computing offers both the software and hardware as a service over the internet. These services are classified into three categories:

1. Software as a Service (SaaS)
2. Platform as a Service (PaaS)
3. Infrastructure as a Service (IaaS)

1. Software as a Service (SaaS)
In this model, a complete application is offered to the customer, as a service on demand. A single instance of the service runs on the cloud & multiple end users are serviced. On the customers‟ side, there is no  need for  upfront investment in servers  or software licenses, while for the provider, the costs are lowered, since only  a single  application needs to be  hosted &  maintained. Today SaaS is  offered by companies such as Google, Salesforce, Microsoft, Zoho, etc.

2. Platform as a Service (PaaS)
Here, a layer of software, or development environment is  encapsulated & offered as a service, upon which other higher levels of service can be built. The customer has the freedom to build his own applications, which run on the provider‟s  infrastructure.  To meet manageability and scalability requirements of the applications, PaaS providers offer a predefined combination of OS and application servers, such as LAMP platform (Linux, Apache, MySql and PHP), restricted J2EE, Ruby etc. Google‟s App Engine, Force.com, etc are some of the popular PaaS examples.

3. Infrastructure as a Service (IaaS)
 IaaS provides  basic storage and computing capabilities as standardized services over the network. Servers, storage systems,  networking equipment,  data centre space etc.  are pooled and made available to handle workloads.  The  customer would typically deploy his own  software on the infrastructure. Some common examples are Amazon, GoGrid, 3 Tera, etc.


Cloud deployment models
Cloud computing model can be deployed in several ways. According to the characteristic of those models we can identified four main models.

1. Private Cloud 
The cloud infrastructure has been deployed, and is maintained and operated for a specific organization. The operation may be in-house or with a third party on the premises.


2. Community Cloud
 The cloud infrastructure is shared among a number of organizations with similar interests and requirements.
This may help limit the capital expenditure costs for its establishment as the costs are shared among the organizations. The operation may be in-house or with a third party on the premises.


3. Public Cloud 
 The cloud infrastructure is available to the public on a commercial basis by a cloud service provider. This enables a consumer to develop and deploy a service in the cloud with very little financial outlay compared to the capital.


4. Hybrid Cloud 
 The cloud infrastructure consists of a number of clouds of any type, but the clouds have the ability through their interfaces to allow data and/or applications to be moved from one cloud to another. This can be a combination of private and public clouds that support the requirement to retain some data in an organization, and also the need to offer services in the cloud.

Benefits
The following are some of the possible benefits for those who offer cloud computing-based services and applications:

•  Cost Savings 
Initial expense is really cost effective. The billing model has a per usage basis. The Maintaining cost and service cost are much lower than the traditional computing methods.

•  Scalability/Flexibility
Cloud computing infrastructures have massive storage capacity. There for users can do computation with large size of data. If we consider in industrial level,
Companies can start with a small deployment and grow to a large deployment fairly rapidly, and then scale back if necessary. Also, the flexibility of cloud computing allows companies to use extra resources at peak times, enabling them to satisfy consumer demands.

•  Reliability
We can use multiple redundant clouds to do our computation purposes. This supports business continuity and disaster recovery.

• Maintenance
Cloud service providers do the system maintenance, and access is through APIs that do not require application installations onto PCs, thus further reducing maintenance requirements.

•  Mobile Accessible
This is also a major benefit coming with the cloud computing. Mobile workers have increased productivity due to systems accessible in an infrastructure available from anywhere.

Challenges


• Data Security
Security is the main problem involves with the cloud computing structure. Cloud service providers can monitor the usage of the cloud and the data. Users don’t have the understanding about the  back end data storages. They don’t know exactly where they are storing their data. This problem can solve if service providers can assure a good security level and if they use any encrypting mechanism.

• Data Recovery and Availability
This is also a challenge which achieve by the service providers. The service providers should maintain a good disaster recovery system and  capacity and performance management system.

• Management Capabilities 
Despite there being multiple cloud providers, the management of platform and infrastructure is still in its infancy. Features like „Auto-scaling‟ for example, are a crucial requirement for many enterprises. There is huge potential to improve on the scalability and load balancing features provided today.


• Regulatory and Constitutional Restrictions 
In some of countries, Government regulations do not allow personal information and other sensitive information to be physically located outside the state or country. In order to meet such requirements, cloud providers need to setup a data center or a storage site exclusively within the country to comply with regulations. Having such an infrastructure may not always be feasible and is a big challenge for cloud providers.