Wednesday, June 20, 2018

Understanding Cloud Computing Planning

Before deploying applications to cloud, it is necessary to consider your business requirements. Following are the issues one must consider:

Data Security and Privacy Requirement
Budget Requirements
Type of cloud - public, private or hybrid
Data backup requirements
Training requirements
Dashboard and reporting requirements
Client access requirements
Data export requirements
To meet all of these requirements, it is necessary to have well-compiled planning. In this tutorial, we will discuss the various planning phases that must be practised by an enterprise before migrating the entire business to cloud. Each of these planning phases are described in the following diagram:

Cloud Computing Planning
Strategy Phase
In this phase, we analyze the strategy problems that customer might face. There are two steps to perform this analysis:

Cloud Computing Value Proposition
Cloud Computing Strategy Planning
Cloud Computing Value Proposition
In this, we analyze the factors influencing the customers when applying cloud computing mode and target the key problems they wish to solve. These key factors are:

IT management simplification
operation and maintenance cost reduction
business mode innovation
low cost outsourcing hosting
high service quality outsourcing hosting.
All of the above analysis helps in decision making for future development.

Cloud Computing Strategy Planning
The strategy establishment is based on the analysis result of the above step. In this step, a strategy document is prepared according to the conditions a customer might face when applying cloud computing mode.

Planning Phase
This step performs analysis of problems and risks in the cloud application to ensure the customers that the cloud computing is successfully meeting their business goals. This phase involves the following planning steps:

Business Architecture Development
IT Architecture development
Requirements on Quality of Service Development
Transformation Plan development
Business Architecture Development
In this step, we recognize the risks that might be caused by cloud computing application from a business perspective.

IT Architecture Development
In this step, we identify the applications that support the business processes and the technologies required to support enterprise applications and data systems.

Requirements on Quality of Service Development
Quality of service refers to the non-functional requirements such as reliability, security, disaster recovery, etc. The success of applying cloud computing mode depends on these non-functional factors.

Transformation Plan Development
In this step, we formulate all kinds of plans that are required to transform current business to cloud computing modes.

Deployment Phase
This phase focuses on both of the above two phases. It involves the following two steps:

Selecting Cloud Computing Provider
Maintenance and Technical Service
Selecting Cloud Computing Provider
This step includes selecting a cloud provider on basis of Service Level Agreement (SLA), which defines the level of service the provider will meet.

Maintenance and Technical Service
Maintenance and Technical services are provided by the cloud provider. They need to ensure the quality of services.

Introduction To International Business Management

A Global Village
The world is fast becoming a global village where there are no boundaries to stop free trade and communication. Keeping pace with it, the way we do business has changed in an unprecedented manner. The competition, in the global marketplace, is at its peak where all companies want to sell their goods to everyone, everywhere on the globe.

Global Village
For example, the faucet we see in our bathroom may be from Italy. The towels we use may be a Brazilian product. The automobile we drive may be a Japanese or German brand. The air conditioners we use may be from France. It is almost impossible to stay isolated and be self-sufficient in this day and age. That is why multinational companies are a reality.

What is International Business?
Any business that involves operations in more than one country can be called an international business. International business is related to the trade and investment operations done by entities across national borders.

Firms may assemble, acquire, produce, market, and perform other value-addition-operations on international scale and scope. Business organizations may also engage in collaborations with business partners from different countries.

Apart from individual firms, governments and international agencies may also get involved in international business transactions. Companies and countries may exchange different types of physical and intellectual assets. These assets can be products, services, capital, technology, knowledge, or labor.

Note − In this tutorial, we are primarily focusing towards business operations of the individual firm.

Internationalization of Business
Let’s try to explore the reasons why a business would like to go global. It is important to note that there are many challenges in the path of internationalization, but we’ll focus on the positive attributes of the process for the time-being.

There are five major reasons why a business may want to go global −

First-mover Advantage − It refers to getting into a new market and enjoy the advantages of being first. It is easy to quickly start doing business and get early adopters by being first.

Opportunity for Growth − Potential for growth is a very common reason of internationalization. Your market may saturate in your home country and therefore you may set out on exploring new markets.

Small Local Markets − Start-ups in Finland and Nordics have always looked at internationalization as a major strategy from the very beginning because their local market is small.

Increase of Customers − If customers are in short supply, it may hit a company’s potential for growth. In such a case, companies may look for internationalization.

Discourage Local Competitors − Acquiring a new market may mean discouraging other players from getting into the same business-space as one company is in.

Advantages of Internationalization
There are multiple advantages of going international. However, the most striking and impactful ones are the following four.

Product Flexibility
International businesses having products that don’t really sell well enough in their local or regional market may find a much better customer base in international markets. Hence, a business house having global presence need not dump the unsold stock of products at deep discounts in the local market. It can search for some new markets where the products sell at a higher price.

A business having international operations may also find new products to sell internationally which they don’t offer in the local markets. International businesses have a wider audience and thus they can sell a larger range of products or services.

Less Competition
Competition can be a local phenomenon. International markets can have less competition where the businesses can capture a market share quickly. This factor is particularly advantageous when high-quality and superior products are available. Local companies may have the same quality products, but the international businesses may have little competition in a market where an inferior product is available.

Protection from National Trends and Events
Marketing in several countries reduces the vulnerability to events of one country. For example, the political, social, geographical and religious factors that negatively affect a country may be offset by marketing the same product in a different country. Moreover, risks that can disrupt business can be minimized by marketing internationally.

Learning New Methods
Doing business in more than one country offers great insights to learn new ways of accomplishing things. This new knowledge and experience can pave ways to success in other markets as well.

Globalization
Although globalization and internationalization are used in the same context, there are some major differences.

Globalization is a much larger process and often includes the assimilation of the markets as a whole. Moreover, when we talk about globalization, we take up the cultural context as well.

Globalization is an intensified process of internationalizing a business. In general terms, global companies are larger and more widespread than the low-lying international business organizations.

Globalization means the intensification of cross-country political, cultural, social, economic, and technological interactions that result in the formation of transnational business organization. It also refers to the assimilation of economic, political, and social initiatives on a global scale.

Globalization also refers to the costless cross-border transition of goods and services, capital, knowledge, and labor.

Factors Causing Globalization of Businesses
There are many factors related to the change of technology, international policies, and cultural assimilation that initiated the process of globalization. The following are the most important factors that helped globalization take shape and spread it drastically.

The Reduction and Removal of Trade Barriers
After World War II, the General Agreement on Tariffs and Trade (GATT) and the WTO have reduced tariffs and various non-tariff barriers to trade. It enabled more countries to explore their comparative advantage. It has a direct impact on globalization.

Trade Negotiations
The Uruguay Round of negotiations (1986–94) can be considered as the real boon for globalization. It is considerably a large set of measures which was agreed upon exclusively for liberalized trade. As a result, the world trade volume increased by 50% in the following 6 years of the Uruguay Round, paving the way for businesses to span their offerings at an international level.

Transport Costs
Over the last 25 years, sea transport costs have plunged 70%, and the airfreight costs have nosedived 3–4% annually. The result is a boost in international and multi-continental trade flows that led to Globalization.

Growth of the Internet
Expansion of e-commerce due to the growth of the Internet has enabled businesses to compete globally. Essentially, due to the availability of the Internet, consumers are interested to buy products online at a low price after reviewing best deals from multiple vendors. At the same time, online suppliers are saving a lot of marketing costs.

Growth of Multinational Corporations
Multinational Corporations (MNCs) have characterized the global interdependence. They encompass a number of countries. Their sales, profits, and the flow of production is reliant on several countries at once.

The Development of Trading Blocs
The 'regional trade agreement' (RTA) abolished internal barriers to trade and replaced them with a common external tariff against non-members. Trading blocs actually promote globalization and interdependence of economies via trade creation.

Introduction Python Data Structure

Data structures are fundamental concepts of computer science which helps is writing efficient programs in any language. Python is a high-level, interpreted, interactive and object-oriented scripting language using which we can study the fundamentals of data structure in a simpler way as compared to other programming languages.

In this chapter we are going to study a short overview of some frequently used data structures in general and how they are related to some specific python data types. There are also some data structures specific to python which is listed as another category.

General Data Structures
The various data structures in computer science are divided broadly into two categories shown below. We will discuss about each of the below data structures in detail in subsequent chapters.

LINER DATA STRUCTURES
These are the data structures which store the data elements in a sequential manner.

Array: It is a sequential arrangement of data elements paired with the index of the data element.
Linked List: Each data element contains a link to another element along with the data present in it.
Stack: It is a data structure which follows only to specific order of operation. LIFO(last in First Out) or FILO(First in Last Out).
Queue: It is similar to Stack but the order of operation is only FIFO(First In First Out).
Matrix: It is two dimensional data structure in which the data element is referred by a pair of indices.
NON-LINER DATA STRUCTURES
These are the data structures in which there is no sequential linking of data elements. Any pair or group of data elements can be linked to each other and can be accessed without a strict sequence.

Binary Tree: It is a data structure where each data element can be connected to maximum two other data elements and it starts with a root node.
Heap: It is a special case of Tree data structure where the data in the parent node is either strictly greater than/ equal to the child nodes or strictly less than it’s child nodes.
Hash Table: It is a data structure which is made of arrays associated with each other using a hash function. It retrieves values using keys rather than index from a data element.
Graph: .It is an arrangement of vertices and nodes where some of the nodes are connected to each other through links.
PYTHON SPECIFIC DATA STRUCTURES
These data structures are specific to python language and they give greater flexibility in storing different types of data and faster processing in python environment.

List: It is similar to array with the exception that the data elements can be of different data types. You can have both numeric and string data in a python list.
Tuple: Tuples are similar to lists but they are immutable which means the values in a tuple cannot be modified they can only be read.
Dictionary: The dictionary contains Key-value pairs as its data elements.
In the next chapters we are going to learn the details of how each of these data structures can be implemented using Python.

Beginners Guide to SQL and other popular Database

SQL is a language to operate databases; it includes database creation, deletion, fetching rows, modifying rows, etc. SQL is an ANSI (American National Standards Institute) standard language, but there are many different versions of the SQL language.

What is SQL?
SQL is Structured Query Language, which is a computer language for storing, manipulating and retrieving data stored in a relational database.
SQL is the standard language for Relational Database System. All the Relational Database Management Systems (RDMS) like MySQL, MS Access, Oracle, Sybase, Informix, Postgres and SQL Server use SQL as their standard database language.

Also, they are using different dialects, such as

MS SQL Server using T-SQL,
Oracle using PL/SQL,
MS Access version of SQL is called JET SQL (native format) etc.

Why SQL?
SQL is widely popular because it offers the following advantages

Allows users to access data in the relational database management systems.

Allows users to describe the data.

Allows users to define the data in a database and manipulate that data.

Allows to embed within other languages using SQL modules, libraries & pre-compilers.

Allows users to create and drop databases and tables.

Allows users to create view, stored procedure, functions in a database.

Allows users to set permissions on tables, procedures and views.

A Brief History of SQL
1970 − Dr. Edgar F. "Ted" Codd of IBM is known as the father of relational databases. He described a relational model for databases.

1974 − Structured Query Language appeared.

1978 − IBM worked to develop Codd's ideas and released a product named System/R.

1986 − IBM developed the first prototype of relational database and standardized by ANSI. The first relational database was released by Relational Software which later came to be known as Oracle.

SQL Process
When you are executing an SQL command for any RDBMS, the system determines the best way to carry out your request and SQL engine figures out how to interpret the task.

There are various components included in this process.

These components are −

Query Dispatcher
Optimization Engines
Classic Query Engine
SQL Query Engine, etc.
A classic query engine handles all the non-SQL queries, but a SQL query engine won't handle logical files.

Following is a simple diagram showing the SQL Architecture −

SQL Architecture
SQL Commands
The standard SQL commands to interact with relational databases are CREATE, SELECT, INSERT, UPDATE, DELETE and DROP. These commands can be classified into the following groups based on their nature −

DDL - Data Definition Language
Command & Description

1 CREATE
Creates a new table, a view of a table, or other object in the database.

2 ALTER
Modifies an existing database object, such as a table.

3 DROP
Deletes an entire table, a view of a table or other objects in the database.

DML - Data Manipulation Language
Command & Description

1 SELECT
Retrieves certain records from one or more tables.

2 INSERT
Creates a record.

3 UPDATE
Modifies records.

4 DELETE
Deletes records.

DCL - Data Control Language
Command & Description

1 GRANT
Gives a privilege to user.

2 REVOKE
Takes back privileges granted from user.

There are many popular RDBMS available to work with. This tutorial gives a brief overview of some of the most popular RDBMS’s. This would help you to compare their basic features.

MySQL
MySQL is an open source SQL database, which is developed by a Swedish company – MySQL AB. MySQL is pronounced as "my ess-que-ell," in contrast with SQL, pronounced "sequel."

MySQL is supporting many different platforms including Microsoft Windows, the major Linux distributions, UNIX, and Mac OS X.

MySQL has free and paid versions, depending on its usage (non-commercial/commercial) and features. MySQL comes with a very fast, multi-threaded, multi-user and robust SQL database server.

History
Development of MySQL by Michael Widenius & David Axmark beginning in 1994.

First internal release on 23rd May 1995.

Windows Version was released on the 8th January 1998 for Windows 95 and NT.

Version 3.23: beta from June 2000, production release January 2001.

Version 4.0: beta from August 2002, production release March 2003 (unions).

Version 4.01: beta from August 2003, Jyoti adopts MySQL for database tracking.

Version 4.1: beta from June 2004, production release October 2004.

Version 5.0: beta from March 2005, production release October 2005.

Sun Microsystems acquired MySQL AB on the 26th February 2008.

Version 5.1: production release 27th November 2008.

Features
High Performance.
High Availability.
Scalability and Flexibility Run anything.
Robust Transactional Support.
Web and Data Warehouse Strengths.
Strong Data Protection.
Comprehensive Application Development.
Management Ease.
Open Source Freedom and 24 x 7 Support.
Lowest Total Cost of Ownership.

MS SQL Server
MS SQL Server is a Relational Database Management System developed by Microsoft Inc. Its primary query languages are:
T-SQL
ANSI SQL

1987 - Sybase releases SQL Server for UNIX.

1988 - Microsoft, Sybase, and Aston-Tate port SQL Server to OS/2.

1989 - Microsoft, Sybase, and Aston-Tate release SQL Server 1.0 for OS/2.

1990 - SQL Server 1.1 is released with support for Windows 3.0 clients.

Aston - Tate drops out of SQL Server development.

2000 - Microsoft releases SQL Server 2000.

2001 - Microsoft releases XML for SQL Server Web Release 1 (download).

2002 - Microsoft releases SQLXML 2.0 (renamed from XML for SQL Server).

2002 - Microsoft releases SQLXML 3.0.

2005 - Microsoft releases SQL Server 2005 on November 7th, 2005.

Features
High Performance
High Availability
Database mirroring
Database snapshots
CLR integration
Service Broker
DDL triggers
Ranking functions
Row version-based isolation levels
XML integration
TRY...CATCH
Database Mail

ORACLE
It is a very large multi-user based database management system. Oracle is a relational database management system developed by 'Oracle Corporation'.

Oracle works to efficiently manage its resources, a database of information among the multiple clients requesting and sending data in the network.

It is an excellent database server choice for client/server computing. Oracle supports all major operating systems for both clients and servers, including MSDOS, NetWare, UnixWare, OS/2 and most UNIX flavors.

History
Oracle began in 1977 and celebrating its 32 wonderful years in the industry (from 1977 to 2009).

1977 - Larry Ellison, Bob Miner and Ed Oates founded Software Development Laboratories to undertake development work.

1979 - Version 2.0 of Oracle was released and it became first commercial relational database and first SQL database. The company changed its name to Relational Software Inc. (RSI).

1981 - RSI started developing tools for Oracle.

1982 - RSI was renamed to Oracle Corporation.

1983 - Oracle released version 3.0, rewritten in C language and ran on multiple platforms.

1984 - Oracle version 4.0 was released. It contained features like concurrency control - multi-version read consistency, etc.

1985 - Oracle version 4.0 was released. It contained features like concurrency control - multi-version read consistency, etc.

2007 - Oracle released Oracle11g. The new version focused on better partitioning, easy migration, etc.

Features
Concurrency
Read Consistency
Locking Mechanisms
Quiesce Database
Portability
Self-managing database
SQL*Plus
ASM
Scheduler
Resource Manager
Data Warehousing
Materialized views
Bitmap indexes
Table compression
Parallel Execution
Analytic SQL
Data mining
Partitioning

MS ACCESS
This is one of the most popular Microsoft products. Microsoft Access is an entry-level database management software. MS Access database is not only inexpensive but also a powerful database for small-scale projects.

MS Access uses the Jet database engine, which utilizes a specific SQL language dialect (sometimes referred to as Jet SQL).

MS Access comes with the professional edition of MS Office package. MS Access has easyto-use intuitive graphical interface.

1992 - Access version 1.0 was released.

1993 - Access 1.1 released to improve compatibility with inclusion the Access Basic programming language.

The most significant transition was from Access 97 to Access 2000.

2007 - Access 2007, a new database format was introduced ACCDB which supports complex data types such as multi valued and attachment fields.

Features
Users can create tables, queries, forms and reports and connect them together with macros.

Option of importing and exporting the data to many formats including Excel, Outlook, ASCII, dBase, Paradox, FoxPro, SQL Server, Oracle, ODBC, etc.

There is also the Jet Database format (MDB or ACCDB in Access 2007), which can contain the application and data in one file. This makes it very convenient to distribute the entire application to another user, who can run it in disconnected environments.

Microsoft Access offers parameterized queries. These queries and Access tables can be referenced from other programs like VB6 and .NET through DAO or ADO.

The desktop editions of Microsoft SQL Server can be used with Access as an alternative to the Jet Database Engine.

Microsoft Access is a file server-based database. Unlike the client-server relational database management systems (RDBMS), Microsoft Access does not implement database triggers, stored procedures or transaction logging.