Tuesday, July 10, 2018

CMS Platforms

In this post, we will first discuss how to make the right choice for your website and which Content Management System (CMS) Platform to choose for your website.

Choosing the Right Website
Let us understand this by asking ourselves a few questions and then discuss the concept in detail.

Question 1 − How much money do we want to spend?

Answer − This is one of the main questions because it is directly related to the budget. If your budget is low, then you should think of something non-commercial and not too complicated.

Question 2 − How much time do we have to plan for the maintenance?

Answer − If you are going to publish many offers, having a blog to moderate, etc., then for sure you will need a dynamic website. You must have extra staff for handling all this, thus this question correlates with the Question 1. Otherwise you should have a flat website, which we will explain in the following chapters.

Question 3 − Will the website be used as an e-commerce site for selling products online?

Answer − If this is the case, you should look for a platform which is called e-commerce. There are many such open source and commercial ones such as Magento, Opencard, Shopify, etc.

Question 4 − Should the view be adaptable for different screens like mobiles?

Answer − If this is one of the main criteria and if there are not many other changes in terms of information in the website; then you should go with a flat website having features like Bootstrap.

Question 5 − Will my website interact with social media or other third party platforms?

Answer − You will need a record for all the events happening on your website and they will be saved in a database. For keeping all this data and records, you will need a dynamic website.

Question 6 − What type of web programing language or platform is easier to find?

Answer − Depending on the country, there are several programing languages or platforms which are more popular than the others. So, you should first find a platform that goes with the trends of your region.

CMS Platform
Content Management System (CMS) Platforms are applications which allow to create and run your website. You will get an Admin Panel, which is an interface where you can create and update pages, posts and other type of content (images, videos, etc.) and arrange the content the way you need.

You will also be able to change the design of the site through the admin panel by installing themes (design templates) and changing them. All the actions are done simply by clicking on various buttons. You don’t have to write codes or scripts in most cases, so you can manage your content easily.

The most prominent CMS platforms are WordPress, Joomla and Drupal. They are free and open source CMS engines. That means their source code is open to the public. You can use, edit and customize the core files of the engine on your site and if you discover a great way to improve the platform, you can pitch it to the developers and help in making their engine even better in their next update.

WordPress is an open source CMS. More than 50 % of the webpages are by that platform. It is getting more comprehensive, intuitive and popular with each new update release. WordPress has a committed community, which has tonnes of free extensions and the easiest-to-use interface.

Managing your content with WordPress is perfectly simple: you create a page, add it to the menu, post something on it and see your content on the front-end of your site. All that adds up to a pre-eminent CMS platform. The official webpage is https://wordpress.com/.

The following screenshot shows the dashboard background.

Dashboard
Joomla has balance between customization possibilities and user-friendliness, yet it is much more complex than WordPress. If you have never worked with this engine before, you will need some time to get used to modifying it. Assigning plugins to modules, positioning modules on different pages, configuring layouts and other necessary manipulations can be a bit hard on a beginner developer.

On the other hand, Joomla extension developers and community have come up with many inspired solutions for common web design problems that are hard to resolve within WordPress. If we take any Joomla slider extension as an example, you can set its location on the page, the duration for showing each slide, the sliding effect and the type of pagination.

Its official webpage is https://www.joomla.org/.

Adminstration

Drupal is for huge websites and organizations that can afford full-time administrators. You can do almost anything with Drupal. I am often fascinated by how many options the engine contains out of the box. Lots of things which in WordPress or Joomla would require custom coding have readymade solutions by default in Drupal. It can be enhanced even more with third-party extensions. But, I will be honest with you - learning to operate it, is the real challenge. It takes a lot of work and patience to master.

Its official website is https://www.drupal.org/.

Introduction To Network Security


Computer networks are an integral part of our personal and professional lives because we carry out lots of day-to-day activities through the Internet or local organizational network. The downside of this is that huge amount of data, from official documents to personal details, gets shared over the network. So it becomes necessary to ensure that the data is not accessed by unauthorized people.

Practices adopted to monitor and prevent unauthorized access and misuse of network resources and data on them is called network security.
Network Security

A network has two components – hardware and software. Both these components have their own vulnerability to threats. Threat is a possible risk that might exploit a network weakness to breach security and cause harm. Examples of hardware threats include −

    Improper installation
    Use of unsecure components
    Electromagnetic interference from external sources
    Extreme weather conditions
    Lack of disaster planning

Hardware threats form only 10% of network security threats worldwide because the components need to be accessed physically. 90% threats are through software vulnerabilities. Here we discuss the major types of software security threats.
Virus

A virus is a malicious program or malware that attaches itself to a host and makes multiple copies of itself (like a real virus!), slowing down, corrupting or destroying the system.

Some harmful activities that can be undertaken by a virus are −

    Taking up memory space
    Accessing private information like credit card details
    Flashing unwanted messages on user screen
    Corrupting data
    Spamming e-mail contacts

Viruses mostly attack Windows systems. Till a few years ago, Mac systems were deemed immune from viruses, however now a handful of viruses for them exist as well.
Virus

Viruses spread through e-mails and need a host program to function. Whenever a new program runs on the infected system, the virus attaches itself to that program. If you are an expert who tinkers with the OS files, they can get infected too.
Trojan Horse

Trojan horse is a malware that hides itself within another program like games or documents and harms the system. As it is masked within another program that appears harmless, the user is not aware of the threat. It functions in a way similar to viruses in that it needs a host program to attach itself and harms systems in the same ways.
Trojan Horse

Trojan horses spread through emails and exchange of data through hard drives or pen drives. Even worms could spread Trojan horses.
Worms

Worms are autonomous programs sent by the attacker to infect a system by replicating itself. They usually infect multitasking systems that are connected to a network. Some of the harmful activities undertaken by worms include −

    Accessing and relaying back passwords stored on the system
    Interrupt OS functioning
    Disrupt services provided by the system
    Install viruses or Trojan horses

Spams

Electronic junk mail, unsolicited mail or junk newsroom postings are called spam. Sending multiple unsolicited mails simultaneously is called spamming. Spamming is usually done as part of marketing tactics to announce a product or share political or social views with a wide base of people.

The first spam mail was sent by Gary Thuerk on ARPANET in 1978 to announce launch of new model of Digital Equipment Corporation computers. It was sent to 393 recipients and together with lots of hue and cry it generated sales for the company as well.
Spams

Almost all mail servers give you the option of stopping spams by marking a received mail as junk. You should take care to share your email ID only with trusted people or websites, who will not sell them to spammers.

Introduction To Web Services


Let us discuss some terms commonly used with regard to the Internet.
WWW

WWW is the acronym for World Wide Web. WWW is an information space inhabited by interlinked documents and other media that can be accessed via the Internet. WWW was invented by British scientist Tim Berners-Lee in 1989 and developed the first web browser in 1990 to facilitate exchange of information through the use of interlinked hypertexts.
World Wide Web

A text that contains link to another piece of text is called hypertext. The web resources were identified by a unique name called URL to avoid confusion.

World Wide Web has revolutionized the way we create, store and exchange information. Success of WWW can be attributed to these factors −

    User friendly
    Use of multimedia
    Interlinking of pages through hypertexts
    Interactive

HTML

HTML stands for Hypertext Markup Language. A language designed such that parts of text can be marked to specify its structure, layout and style in context of the whole page is called a markup language. Its primary function is defining, processing and presenting text.

HTML is the standard language for creating web pages and web applications, and loading them in web browsers. Like WWW it was created by Time Berners-Lee to enable users to access pages from any page easily.

When you send request for a page, the web server sends file in HTML form. This HTML file is interpreted by the web browser and displayed.
XML

XML stands for eXtensible Markup Language. It is a markup language designed to store and transport data in safe, secure and correct way. As the word extensible indicates, XML provides users with a tool to define their own language, especially to display documents on the Internet.
XML

Any XML document has two parts – structure and content. Let’s take an example to understand this. Suppose your school library wants to create a database of magazines it subscribes to. This is the CATALOG XML file that needs to be created.

<CATALOG>
   <MAGAZINE>
      <TITLE>Magic Pot</TITLE>
      <PUBLISHER>MM Publications</PUBLISHER>
      <FREQUENCY>Weekly</FREQUENCY>
      <PRICE>15</PRICE>
   </MAGAZINE>
  
   <MAGAZINE>
      <TITLE>Competition Refresher</TITLE>
      <PUBLISHER>Bright Publications</PUBLISHER>
      <FREQUENCY>Monthly</FREQUENC>
      <PRICE>100</PRICE>
   </MAGAZINE>
</CATALOG>

Each magazine has title, publisher, frequency and price information stored about it. This is the structure of catalog. Values like Magic Pot, MM Publication, Monthly, Weekly, etc. are the content.

This XML file has information about all the magazines available in the library. Remember that this file will not do anything on its own. But another piece of code can be easily written to extract, analyze and present data stored here.
HTTP

HTTP stands for Hypertext Transfer Protocol. It is the most fundamental protocol used for transferring text, graphics, image, video and other multimedia files on the World Wide Web. HTTP is an application layer protocol of the TCP/IP suite in client-server networking model and was outlined for the first time by Time Berners-Lee, father of World Wide Web.
Hypertext Transfer Protocol

HTTP is a request-response protocol. Here is how it functions −

    Client submits request to HTTP.

    TCP connection is established with the server.

    After necessary processing server sends back status request as well as a message. The message may have the requested content or an error message.

An HTTP request is called method. Some of the most popular methods are GET, PUT, POST, CONNECT, etc. Methods that have in-built security mechanisms are called safe methods while others are called unsafe. The version of HTTP that is completely secure is HTTPS where S stands for secure. Here all methods are secure.

An example of use of HTTP protocol is −

https://www.tutorialspoint.com/videotutorials/index.htm

The user is requesting (by clicking on a link) the index page of video tutorials on the tutorialspoint.com website. Other parts of the request are discussed later in the chapter.
Domain Names

Domain name is a unique name given to a server to identify it on the World Wide Web. In the example request given earlier −

https://www.tutorialspoint.com/videotutorials/index.htm

tutorialspoint.com is the domain name. Domain name has multiple parts called labels separated by dots. Let us discuss the labels of this domain name. The right most label .com is called top level domain (TLD). Other examples of TLDs include .net, .org, .co, .au, etc.
Domain Names

The label left to the TLD, i.e. tutorialspoint, is the second level domain. In the above image, .co label in .co.uk is second level domain and .uk is the TLD. www is simply a label used to create the subdomain of tutorialspoint.com. Another label could be ftp to create the subdomain ftp.tutorialspoint.com.

This logical tree structure of domain names, starting from top level domain to lower level domain names is called domain name hierarchy. Root of the domain name hierarchy is nameless. The maximum length of complete domain name is 253 ASCII characters.
Domain Name Hierarchy.
URL

URL stands for Uniform Resource Locator. URL refers to the location of a web resource on computer network and mechanism for retrieving it. Let us continue with the above example −

https://www.tutorialspoint.com/videotutorials/index.htm

This complete string is a URL. Let’s discuss its parts −

    index.htm is the resource (web page in this case) that needs to be retrieved

    www.tutorialspoint.com is the server on which this page is located

    videotutorials is the folder on server where the resource is located

    www.tutorialspoint.com/videotutorials is the complete pathname of the resource

    https is the protocol to be used to retrieve the resource

URL is displayed in the address bar of the web browser.
Websites

Website is a set of web pages under a single domain name. Web page is a text document located on a server and connected to the World Wide Web through hypertexts. Using the image depicting domain name hierarchy, these are the websites that can be constructed −

    www.tutorialspoint.com
    ftp.tutorialspoint.com
    indianrail.gov.in
    cbse.nic.in

Note that there is no protocol associated with websites 3 and 4 but they will still load, using their default protocol.
Website
Web Browsers

Web browser is an application software for accessing, retrieving, presenting and traversing any resource identified by a URL on the World Wide Web. Most popular web browsers include −

    Chrome
    Internet Explorer
    Firefox
    Apple Safari
    Opera

Web Browsers
Web Servers

Web server is any software application, computer or networked device that serves files to the users as per their request. These requests are sent by client devices through HTTP or HTTPS requests. Popular web server software include Apache, Microsoft IIS, and Nginx.
Web Hosting

Web hosting is an Internet service that enables individuals, organizations or businesses to store web pages that can be accessed on the Internet. Web hosting service providers have web servers on which they host web sites and their pages. They also provide the technologies necessary for making a web page available upon client request, as discussed in HTTP above.
Web Scripting

Script is a set of instructions written using any programming language and interpreted (rather than compiled) by another program. Embedding scripts within web pages to make them dynamic is called web scripting.
Web Scripting

As you know, web pages are created using HTML, stored on the server and then loaded into web browsers upon client’s request. Earlier these web pages were static in nature, i.e. what was once created was the only version displayed to the users. However, modern users as well as website owners demand some interaction with the web pages.

Examples of interaction includes validating online forms filled by users, showing messages after user has registered a choice, etc. All this can be achieved by web scripting. Web scripting is of two types −

    Client side scripting − Here the scripts embedded in a page are executed by the client computer itself using web browser. Most popular client side scripting languages are JavaScript, VBScript, AJAX, etc.

    Server side scripting − Here scripts are run on the server. Web page requested by the client is generated and sent after the scripts are run. Most popular server side scripting languages are PHP, Python, ASP .Net, etc.

Web 2.0

Web 2.0 is the second stage of development in World Wide Web where the emphasis is on dynamic and user generated content rather than static content. As discussed above, World Wide Web initially supported creation and presentation of static content using HTML. However, as the users evolved, demand for interactive content grew and web scripting was used to add this dynamism to content.

In 1999, Darcy DiNucci coined the term Web 2.0 to emphasize the paradigm shift in the way web pages were being designed and presented to the user. It became popularity around 2004.

Examples of user generated content in Web 2.0 include social media websites, virtual communities, live chats, etc. These have revolutionized the way we experience and use the Internet.

A Quick Guide To Cloud Computing Architecture and Infrastructure

Cloud Computing architecture comprises of many cloud components, which are loosely coupled. We can broadly divide the cloud architecture into two parts:

Front End
Back End

Each of the ends is connected through a network, usually Internet. The following diagram shows the graphical view of cloud computing architecture:

Front End
The front end refers to the client part of cloud computing system. It consists of interfaces and applications that are required to access the cloud computing platforms, Example - Web Browser.

Back End
The back End refers to the cloud itself. It consists of all the resources required to provide cloud computing services. It comprises of huge data storage, virtual machines, security mechanism, services, deployment models, servers, etc.

Note
It is the responsibility of the back end to provide built-in security mechanism, traffic control and protocols.

The server employs certain protocols known as middleware, which help the connected devices to communicate with each other.

Cloud infrastructure consists of servers, storage devices, network, cloud management software, deployment software, and platform virtualization.

Cloud Computing Infrastructure Components.
Hypervisor
Hypervisor is a firmware or low-level program that acts as a Virtual Machine Manager. It allows to share the single physical instance of cloud resources between several tenants.

Management Software
It helps to maintain and configure the infrastructure.

Deployment Software
It helps to deploy and integrate the application on the cloud.

Network
It is the key component of cloud infrastructure. It allows to connect cloud services over the Internet. It is also possible to deliver network as a utility over the Internet, which means, the customer can customize the network route and protocol.

Server
The server helps to compute the resource sharing and offers other services such as resource allocation and de-allocation, monitoring the resources, providing security etc.

Storage
Cloud keeps multiple replicas of storage. If one of the storage resources fails, then it can be extracted from another one, which makes cloud computing more reliable.

Infrastructural Constraints
Fundamental constraints that cloud infrastructure should implement are shown in the following diagram:

Cloud Computing Infrastructure Constraints
Transparency
Virtualization is the key to share resources in cloud environment. But it is not possible to satisfy the demand with single resource or server. Therefore, there must be transparency in resources, load balancing and application, so that we can scale them on demand.

Scalability
Scaling up an application delivery solution is not that easy as scaling up an application because it involves configuration overhead or even re-architecting the network. So, application delivery solution is need to be scalable which will require the virtual infrastructure such that resource can be provisioned and de-provisioned easily.

Intelligent Monitoring
To achieve transparency and scalability, application solution delivery will need to be capable of intelligent monitoring.

Security
The mega data center in the cloud should be securely architected. Also the control node, an entry point in mega data center, also needs to be secure.