Thursday, 31 March 2011

Web Search Engines Work

Search engines are the key to finding specific information on the vast expanse of the World Wide Web. Without the use of sophisticated search engines, it would be virtually impossible to locate anything on the Web without knowing a specific URL(Uniform Resource Locator), the global address of documents and other resources on the World Wide Web. The first part of the address indicates what protocol to use, and the second part specifies the IP address or the domain name where the resource is located.
There are basically three types of search engines:

Those that are powered by crawlers, or spiders; those that are powered by human submissions; and those that are a combination of the two.



Spider or Crawlers:


Spider is a program that automatically fetches Web pages. Spiders are used to feed pages to search engines. It's called a spider because it crawls over the Web. Another term for these programs is webcrawler.

Because most Web pages contain links to other pages, a spider can start almost anywhere. As soon as it sees a link to another page, it goes off and fetches it. Large search engines, like Alta Vista, have many spiders working in parallel. Because most Web pages contain links to other pages, a spider can start almost anywhere. As soon as it sees a link to another page, it goes off and fetches it. Large search engines, like Alta Vista, have many spiders working in parallel.

Crawler-based engines send crawlers, or spiders, out into cyberspace. These crawlers visit a Web site, read the information on the actual site, read the sites meta tags and also follow the links that the site connects to. Meta Tag is

Meta Tag is a special HTML tag that provides information about a Web page. Unlike normal HTML tags, meta tags do not affect how the page is displayed. Instead, they provide information such as who created the page, how often it is updated, what the page is about, and which keywords represent the page's content. The crawler returns all that information back to a central depository where the data is indexed. The crawler will periodically return to the sites to check for any information that has changed, and the frequency with which this happens is determined by the administrators of the search engine.

Human Powered Search Engines:

Human-powered search engines rely on humans to submit information that is subsequently indexed and catalogued. Only information that is submitted is put into the index. In both cases, when you query a search engine to locate information, you are actually searching through the index that the search engine has created; you are not actually searching the Web. These indices are giant databases of information that is collected and stored and subsequently searched. This explains why sometimes a search on a commercial search engine, such as Yahoo! or Google, will return results that are in fact dead links. Since the search results are based on the index, if the index hasn't been updated since a Web page became invalid the search engine treats the page as still an active link even though it no longer is. It will remain that way until the index is updated.

So why will the same search on different search engines produce different results? Part of the answer to that is because not all indices are going to be exactly the same. It depends on what the spiders find or what the humans submitted. But more important, not every search engine uses the same algorithm to search through the indices. The algorithm is what the search engines use to determine the relevance of the information in the index to what the user is searching for.

One of the elements that a search engine algorithm scans for is the frequency and location of keywords on a Web page. Those with higher frequency are typically considered more relevant. But search engine technology is becoming sophisticated in its attempt to discourage what is known as keyword stuffing, or spamdexing. It is a technique used by Web designers to overload keywords onto a Web page so that search engines will read the page as being relevant in a Web search. Because search engines scan Web pages for the words that are entered into the search criteria by the user, the more times a keyword appears on the Web page the more relevancy the search engine will assign to the page in the search results (this is only one way that search engines determine relevancy, however.) Search engines often penalize a site if the engine discovers keyword stuffing, as this practice is considered poor netiquette, and some search engines will even ban the offending Web pages from their search results.

There are several methods of keyword stuffing. One way is to insert repeating keywords within the input type="hidden" field meta tag or the keyword tag so that the keywords are not seen by the user but are scanned by the search engine. Another way is to make text in the body of the Web page invisible text by making the text the same color as the page?s background, rendering the text invisible to the user unless the user highlights the text. This method is called invisible keyword stuffing. Keyword stuffing also is referred to as keyword loading and spamdexing.

Another common element that algorithms analyze is the way that pages link to other pages in the Web. By analyzing how pages link to each other, an engine can both determine what a page is about (if the keywords of the linked pages are similar to the keywords on the original page) and whether that page is considered "important" and deserving of a boost in ranking. Just as the technology is becoming increasingly sophisticated to ignore keyword stuffing, it is also becoming savvier to Web masters who build artificial links into their sites in order to build an artificial ranking.


Hybrid Search Engines" Or Mixed Results:

In the web's early days, it used to be that a search engine either presented crawler-based results or human-powered listings. Today, it extremely common for both types of results to be presented. Usually, a hybrid search engine will favor one type of listings over another. For example, MSN Search is more likely to present human-powered listings from LookSmart. However, it does also present crawler-based results (as provided by Inktomi), especially for more obscure queries
Conclusions

Different engines have different strong points; use the engine and feature that best fits the job you need to do. One thing is obvious; the engine with the most pages in the database IS NOT the best. Not surprisingly, you can get the most out of your engine by using your head to select search words, knowing your search engine to avoid mistakes with spelling and truncation, and using the special tools available such as specifiers for titles, images, links, etc. The hardware power for rapid searches and databases covering a large fraction of the net is yesterday's accomplishment. We, as users, are living in a special time when search engines are undergoing a more profound evolution, the refinement of their special tools. I believe that very soon the Web will evolve standards, such as standard categories, ways of automatically classifying information into these categories, and the search tools to take advantage of them, that will really improve searching. I think it's exciting to be on the Web in this era, to be able to watch all the changes, and to evolve along with the Web as we use it.

hardware Firewalls and NATs

Firewalls:


A firewall is a network device or host with 2 or more interface one connected to the protected internal network and the other connected to the unprotected networks, such as the Internet.
A firewall controls access in and out the protected internal network.

If you connect an internal network directly to the Internet, you have to make sure that every system on the internal networks is properly secured – which can be nearly impossible because only one careless user can render the entire internal network vulnerable. A firewall is a single point of connection to the Internet. A firewall is like a protective fence that keeps unwanted external data and software out and sensitive internal data and software in.

A firewall runs software that examines the network packets arriving at its network interface and takes appropriate action based on a set of rules. The idea is to define these rules so that they allow only authorized network traffic to flow between the two interfaces. 

Just to point out some general characteristics of a firewall:

It must control the flow of packets between the Internet and the internal network

It must not provide dynamic routing because dynamic routing tables are subject to route spoofing (Use of fake routes by Crackers). Instead, the firewall uses static routing tables (Which you can set up with the route command in a Linux system.)

It must not allow any external user to log in as root. That way, even if the firewall system compromised, the Cracker is blocked from using root privileges from a remote login.

It must be kept in a physically secure location
It must distinguish between packets that come from the Internet and packets that come from the internal protected network.
It acts as the SMTP mail gateway for the internal network. Set up the send mail software so that all outgoing mail appears to come from the firewall system
Its user accounts are limited to a few users accounts for those internal users who need access to external systems. External users who need access to the internal network should use at least SSH for remote login.
It keeps a log of all system activities, such as successful and unsuccessful login attempts.
It provides DNS name-lookup service to the outside world to resolve any host name that are unknown to the outside world.
It provides good performance so that it doesn't hinder the internal user's access to specific Internet services (such as HTTP and FTP).

A firewall can take many different forms. Here are Three common forms of a firewall.

Packet filter firewall

This simple firewall uses a router capable of filtering (Blocking or Allowing) packets according to a number of their characteristics, including the source and destination IP addresses, the network protocol (TCP or UDP), and the source destination port numbers. Packet filter firewalls are usually placed at the outermost boundary with an untrusted network, and they form the first line of defense. 
Packet filter firewalls are fast and flexible, but they cannot prevent attacks that exploit application-specific vulnerabilities or functions. They can log only a minimal amount of information, such as source IP, destination IP address, and traffic type. Also, they are vulnerable to attacks and IP address spoofing, which involves altering the address information. In network packets in order t make packets appear to come from a trusted host.

Stateful inspection firewall

In this case, the firewall keeps track of network connections that network applications are using. When an application on an internal system uses a network connection to create a session with a remote system, a port is also opened on the internal system. This port receives network traffic from the remote system. For successful connection, packet filter firewalls must permit incoming packets from the remote system. Opening up many ports to incoming traffic creates a risk for intrusion by unauthorized users who abuse the expected conventions of network protocols such as TCP. Stateful inspection firewalls solve this problem by creating a table of outbound network connections, along with each session's corresponding internal port. This state table is then used to validate any inbound packets. This stateful inspection is more secure than a packet filter because it tracks internal ports individually rather than opening all internal ports for external access. 

Application-proxy gateway firewall

This firewall acts as an intermediary between internal applications that attempt to communicate with external servers such as web servers. For example, a web proxy receives request for external web pages from the web browser clients running inside the firewall and relays them to the exterior web server as though the firewall requesting web client. The external web server responds to the firewall and the firewall forwards the response to the inside client as thought the firewall was the web server. No direct network connection is ever made from the inside client host to the external web server.

The Application-proxy gateways have some advantages over packet filter firewalls and stateful inspection firewalls. First, application-proxy gateway firewall examine the entire network packet rahter than only the network addresses and ports. This enables these firewalls to provide more extensive logging capabilities than packet filters or stateful inspection firewalls. Another advantage is that application-proxy gateways firewalls can authenticate users directly, while packet filter firewalls and statefull inspection firewalls normally authenticate users based on the IP address of the system (the destination and protocol type). Given that network addresses can be easily spoofed, the authentication capabilities of application-proxy gateway firewalls are superior to those found in packet filter or statefull inspection firewalls.

Most firewalls implement a combination of these firewall functionalities. For example, many vendors of packet filter firewalls or stateful inspection firewalls have also implemented basic application-proxy functions to offset some of the weaknesses associated with their firewalls. In most cases, these vendors implement application proxies to provide better logging of network traffic and stronger user authentication. 

In large organizations, you may also have to isolate smaller internal networks from corporate network. You can set up such internal firewalls the same way that you set up Internet firewalls.

Using NATs

Network Address Translation (NAT) is an effective tool that enables you to “hide” the networks addresses of an internal network behind a firewall. In essence, NAT allows an organization to use private network addresses behind a firewall while still maintaining the ability to connect to external systems through the firewall.

There are 3 methods of implanting NAT

Static:

In static NAT, each internal system on the private network has a corresponding external, rout able IP address associated with it. This particular technique is seldom used because unique IP addresses are in short supply...

Hiding: 

With hiding NAT, all system behind a firewall share the same external, rout able IP address, while the internal systems use private IP addresses. Thus, with hiding, NAT, a number of systems behind a firewall will still appear to be a single system.

Port Address Translation: 
With port address translation, it is possible to place hosts behind a firewall system and still make them selectively accessible to external users.

Static NAT offers the most flexibility, but it is not always practical because of the shortage of IP addresses. Hiding NAT technology is seldom used because port addresses translation is often the most convenient and secure solution.

Wednesday, 30 March 2011

How to google search

This post shows you how to trick Google to search for relevant information.

1. Search Specifically
YES! This may be the biggest mistake people who rarely use Google, if you are not always searching for specific information. Suppose you are looking for information in with keyword love, but what love information? Does it is love tips, love song, the lyrics of love, a love story? There are various possibilities about love.
For example you are looking for information about love tips. Write a love tips to find on Google. If you just type in love, Google probably not going to give effective and specific results that relevant to you.
To find specific information is the best way, even you have to use up more than five words.
2. Use different keywords but have the same meaning
However, information on the Internet is created by human. The way people express the same thing could have a different language. For example: making a computer, there may be people who write articles to make your computer with other spellings such as assembling a computer or make a PC.
So if your information searching does not go successfully, try to think of other keywords which presumably means the same. Google tricks on this one, you need the ability in speaking. Les let say synonyms.
3. If you are embarrassed to ask, then you will go astray on the roadIf you're using Google to answer questions, try also to use phrase asked to search information.
* Who is Adolf Hitler?
* What is the formula of Pythagoras?
* How do I use a proxy?
* How do I use Google?
Results with Google tricks like that are more relevant and directly your question is also answered. Is not it?
4. Force Google to use quotes (“keyword”)Suppose you ask Google to search for information about the death of Manga. He probably will not yield exactly what we ask. The search results will probably be like this “the death blah…blah…blah....in the ... blah…blah…." OK! A result like that cannot be blamed because there are other factors than just a set of keywords in determining the relevant information.
Well, in order to produce a series of information retrieval based on the desired keyword. Use one of Google tricks by using quotes ("keyword") to "the death of Manga." In this way, it will reduce search results plus the information displayed will be more relevant.
5. Use the Plus sign (+) and Minus (-)
The plus and minus signs are not only used in arithmetic. Google also could use it. Of course it has the same function. Google Secret is very rare but it is clearly written in the HELP.
Sign (+)
To add words to search on information search box e.g. "The death of Manga" (remember to use quotation marks) and special for Naruto character only. Then you simply write in "the death Manga" +Naruto. The result other than looking for the keyword "the death of Manga" Google also will place the top search result if there are keywords "naruto".
Sign (-)
Of course it is used to reduce the search results. So what's the point? Why we must reduce the search results? It is because Google index all the pages that Google considers the pages are important. No matter if it's really just advertisements, news, bookmarking, etc...
Try to imagine that we will find about the psychological test. But that comes only from people who sell ads about the psychological test. Thus we use the - sign to remove the ads. Being a "psychological problem" -ad.
You can also use Google to not look at a particular site. Especially classified ads or sites like bookmarking digg.com or lintasberita.com. For example, "about the psychological test" - site: lintasberita.com
6. Information on the Internet is not just a website (html file)
Information on the Internet is not only a variety of websites, but there are also such files like pdf, doc (ms word) even flv (video files like on YouTube). Just add the code file type: "type"
For example, if you want to find a psychological problem in the form of pdf file, Yes, just type "about psychological test" filetype:pdf. To see what files are supported by Google code, it can be found at http://www.google.co.id/advanced_search?hl=id
7. There are Many Roads to Rome
Google is virtually the ruler of the provider and tools to find information on the Internet. But there are many other media that can provide information. Let say yahoo, Wikipedia, YouTube, Ask etc....

Friday, 25 March 2011

What is Cloud computing

Cloud computing refers to the provision of computational resources on demand via a network. Cloud computing can be compared to the supply of electricity and gas, or the provision of telephone, television and postal services. All of these services are presented to the users in a simple way that is easy to understand without the users needing to know how the services are provided. This simplified view is called an abstraction. Similarly, cloud computing offers computer application developers and users an abstract view of services that simplifies and ignores much of the details and inner workings. A provider's offering of abstracted Internet services is often called "The Cloud".

How it works

When a user accesses the cloud for a popular website, many things can happen. The user's IP for example can be used to establish where the user is located (geolocation). DNS services can then direct the user to a cluster of servers that are close to the user so the site can be accessed rapidly and in their local language. The user doesn't login to a server, but they login to the service they are using by obtaining a session id and/or a cookie which is stored in their browser.
What the user sees in the browser will usually come from a cluster of web servers. The webservers run software which presents the user with an interface which is used to collect commands or instructions from the user (the clicks, typing, uploads etc.) These commands are then interpreted by webservers or processed by application servers. Information is then stored on or retrieved from the database servers or file servers and the user is then presented with an updated page. The data across the multiple servers is synchronised around the world for rapid global access .

Technical Description

Cloud computing is computation, software, data access, and storage services that do not require end-user knowledge of the physical location and configuration of the system that delivers the services. Parallels to this concept can be drawn with the electricity grid where end-users consume power resources without any necessary understanding of the component devices in the grid required to provide the service.
Cloud computing describes a new supplement, consumption, and delivery model for IT services based on Internet protocols, and it typically involves provisioning of dynamically scalable and often virtualized resources. It is a byproduct and consequence of the ease-of-access to remote computing sites provided by the Internet.[3] This frequently takes the form of web-based tools or applications that users can access and use through a web browser as if they were programs installed locally on their own computers.
The National Institute of Standards and Technology (NIST) provides a somewhat more objective and specific definition:
Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
Typical cloud computing providers deliver common business applications online that are accessed from another Web service or software like a Web browser, while the software and data are stored on servers.
Most cloud computing infrastructures consist of services delivered through common centers and built on servers. Clouds often appear as single points of access for consumers' computing needs. Commercial offerings are generally expected to meet quality of service (QoS) requirements of customers, and typically include service level agreements (SLAs).

Characteristics

The key characteristic of cloud computing is that the computing is "in the cloud" i.e. the processing (and the related data) is not in a specified, known or static place(s). This is in contrast to a model in which the processing takes place in one or more specific servers that are known. All the other concepts mentioned are supplementary or complementary to this concept.

Architecture

Cloud architecture, the systems architecture of the software systems involved in the delivery of cloud computing, typically involves multiple cloud components communicating with each other over application programming interfaces, usually web services and 3-tier architecture. This resembles the Unix philosophy of having multiple programs each doing one thing well and working together over universal interfaces. Complexity is controlled and the resulting systems are more manageable than their monolithic counterparts.
The two most significant components of cloud computing architecture are known as the front end and the back end. The front end is the part seen by the client, i.e. the computer user. This includes the client’s network (or computer) and the applications used to access the cloud via a user interface such as a web browser. The back end of the cloud computing architecture is the ‘cloud’ itself, comprising various computers, servers and data storage devices.

Key characteristics

  • Agility improves with users' ability to rapidly and inexpensively re-provision technological infrastructure resources.
  • Application Programming Interface (API) accessibility to software that enables machines to interact with cloud software in the same way the user interface facilitates interaction between humans and computers. Cloud computing systems typically use REST-based APIs.
  • Cost is claimed to be greatly reduced and in a public cloud delivery model capital expenditure is converted to operational expenditure. This ostensibly lowers barriers to entry, as infrastructure is typically provided by a third-party and does not need to be purchased for one-time or infrequent intensive computing tasks. Pricing on a utility computing basis is fine-grained with usage-based options and fewer IT skills are required for implementation (in-house).
  • Device and location independence enable users to access systems using a web browser regardless of their location or what device they are using (e.g., PC, mobile phone). As infrastructure is off-site (typically provided by a third-party) and accessed via the Internet, users can connect from anywhere.
  • Multi-tenancy enables sharing of resources and costs across a large pool of users thus allowing for:
    • Centralization of infrastructure in locations with lower costs (such as real estate, electricity, etc.)
    • Peak-load capacity increases (users need not engineer for highest possible load-levels)
    • Utilization and efficiency improvements for systems that are often only 10–20% utilized.
  • Reliability is improved if multiple redundant sites are used, which makes well designed cloud computing suitable for business continuity and disaster recovery. Nonetheless, many major cloud computing services have suffered outages, and IT and business managers can at times do little when they are affected.
  • Scalability via dynamic ("on-demand") provisioning of resources on a fine-grained, self-service basis near real-time, without users having to engineer for peak loads. Performance is monitored, and consistent and loosely coupled architectures are constructed using web services as the system interface.
  • Security could improve due to centralization of data,increased security-focused resources, etc., but concerns can persist about loss of control over certain sensitive data, and the lack of security for stored kernels.Security is often as good as or better than under traditional systems, in part because providers are able to devote resources to solving security issues that many customers cannot afford.However, the complexity of security is greatly increased when data is distributed over a wider area or greater number of devices and in multi-tenant systems which are being shared by unrelated users. In addition, user access to security audit logs may be difficult or impossible. Private cloud installations are in part motivated by users' desire to retain control over the infrastructure and avoid losing control of information security.
  • Maintenance of cloud computing applications is easier, because they do not need to be installed on each user's computer. They are easier to support and to improve, as the changes reach the clients instantly.
  • Metering means that cloud computing resources usage should be measurable and should be metered per client and application on a daily, weekly, monthly, and yearly basis.

    Layers

    Once an Internet Protocol connection is established among several computers, it is possible to share services within any one of the following layers.

    Client:

    A cloud client consists of computer hardware and/or computer software that relies on cloud computing for application delivery, or that is specifically designed for delivery of cloud services and that, in either case, is essentially useless without it. Examples include some computers, phones and other devices, operating systems and browsers.

    Application:

    Cloud application services or "Software as a Service (SaaS)" deliver software as a service over the Internet, eliminating the need to install and run the application on the customer's own computers and simplifying maintenance and support. People tend to use the terms "SaaS" and "cloud" interchangeably, when in fact they are two different things.[citation needed] Key characteristics include:[39][clarification needed]
  • Network-based access to, and management of, commercially available (i.e., not custom) software
  • Activities that are managed from central locations rather than at each customer's site, enabling customers to access applications remotely via the Web
  • Application delivery that typically is closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model, including architecture, pricing, partnering, and management characteristics
  • Centralized feature updating, which obviates the need for downloadable patches and upgrades.

    Platform:

    Cloud platform services or "Platform as a Service (PaaS)" deliver a computing platform and/or solution stack as a service, often consuming cloud infrastructure and sustaining cloud applications.It facilitates deployment of applications without the cost and complexity of buying and managing the underlying hardware and software layers.

    Infrastructure:

    Cloud infrastructure services, also known as "Infrastructure as a Service (IaaS)", delivers computer infrastructure – typically a platform virtualization environment – as a service. Rather than purchasing servers, software, data-center space or network equipment, clients instead buy those resources as a fully outsourced service. Suppliers typically bill such services on a utility computing basis and amount of resources consumed (and therefore the cost) will typically reflect the level of activity. IaaS evolved from virtual private server offerings.
    Cloud infrastructure often takes the form of a tier 3 data center with many tier 4 attributes, assembled from hundreds of virtual machines.

    Server:

    The servers layer consists of computer hardware and/or computer software products that are specifically designed for the delivery of cloud services, including multi-core processors, cloud-specific operating systems and combined offerings.

    Deployment models

    Public cloud

    Public cloud or external cloud describes cloud computing in the traditional mainstream sense, whereby resources are dynamically provisioned on a fine-grained, self-service basis over the Internet, via web applications/web services, from an off-site third-party provider who bills on a fine-grained utility computing basis

    Community cloud

    A community cloud may be established where several organizations have similar requirements and seek to share infrastructure so as to realize some of the benefits of cloud computing. With the costs spread over fewer users than a public cloud (but more than a single tenant) this option is more expensive but may offer a higher level of privacy, security and/or policy compliance. Examples of community clouds include Google's "Gov Cloud".

    Hybrid cloud and hybrid IT delivery

    The main responsibility of the IT department is to deliver services to the business. With the proliferation of cloud computing (both private and public) and the fact that IT departments must also deliver services via traditional, in-house methods, the newest catch-phrase has become “hybrid cloud computing.”[48] Hybrid cloud is also called hybrid delivery by the major vendors including HP, IBM, Oracle and VMware who offer technology to manage the complexity in managing the performance, security and privacy concerns that results from the mixed delivery methods of IT services.[49]
    A hybrid storage cloud uses a combination of public and private storage clouds. Hybrid storage clouds are often useful for archiving and backup functions, allowing local data to be replicated to a public cloud.[50]
    Another perspective on deploying a web application in the cloud is using Hybrid Web Hosting, where the hosting infrastructure is a mix between cloud hosting and managed dedicated servers – this is most commonly achieved as part of a web cluster in which some of the nodes are running on real physical hardware and some are running on cloud server instances.     
        Combined cloud
        Two clouds that have been joined together are more correctly called a "combined cloud". A combined   cloud environment consisting of multiple internal and/or external providers "will be typical for most       enterprises".By integrating multiple cloud services users may be able to ease the transition to public cloud   services while avoiding issues such as PCI compliance.

      Private cloud

    

Douglas Parkhill first described the concept of a "private computer utility" in his 1966 book The Challenge of the Computer Utility. The idea was based upon direct comparison with other industries (e.g. the electricity industry) and the extensive use of hybrid supply models to balance and mitigate risks.
"Private cloud" and "internal cloud" have been described as neologisms, but the concepts themselves pre-date the term cloud by 40 years. Even within modern utility industries, hybrid models still exist despite the formation of reasonably well-functioning markets and the ability to combine multiple providers.
Some vendors have used the terms to describe offerings that emulate cloud computing on private networks. These (typically virtualization automation) products offer the ability to host applications or virtual machines in a company's own set of hosts. These provide the benefits of utility computing – shared hardware costs, the ability to recover from failure, and the ability to scale up or down depending upon demand.
Private clouds have attracted criticism because users "still have to buy, build, and manage them" and thus do not benefit from lower up-front capital costs and less hands-on management,essentially "[lacking] the economic model that makes cloud computing such an intriguing concept".Enterprise IT organizations use their own private cloud(s) for mission critical and other operational systems to protect critical infrastructures.

Cloud engineering

Cloud engineering is the application of a systematic, disciplined, quantifiable, and interdisciplinary approach to the ideation, conceptualization, development, operation, and maintenance of cloud computing, as well as the study and applied research of the approach, i.e., the application of engineering to cloud. It is a maturing and evolving discipline to facilitate the adoption, strategization, operationalization, industrialization, standardization, productization, commoditization, and governance of cloud solutions, leading towards a cloud ecosystem[further explanation needed]. Cloud engineering is also known as cloud service engineering.

Cloud storage

Cloud storage is a model of networked computer data storage where data is stored on multiple virtual servers, generally hosted by third parties, rather than being hosted on dedicated servers. Hosting companies operate large data centers; and people who require their data to be hosted buy or lease storage capacity from them and use it for their storage needs. The data center operators, in the background, virtualize the resources according to the requirements of the customer and expose them as virtual servers, which the customers can themselves manage. Physically, the resource may span across multiple servers.

The Intercloud

The Intercloud is an interconnected global "cloud of clouds"and an extension of the Internet "network of networks" on which it is based.The term was first used in the context of cloud computing in 2007 when Kevin Kelly stated that "eventually we'll have the intercloud, the cloud of clouds. This Intercloud will have the dimensions of one machine comprising all servers and attendant cloudbooks on the planet.".It became popular in 2009 and has also been used to describe the datacenter of the future.
The Intercloud scenario is based on the key concept that each single cloud does not have infinite physical resources. If a cloud saturates the computational and storage resources of its virtualization infrastructure, it could not be able to satisfy further requests for service allocations sent from its clients. The Intercloud scenario aims to address such situation, and in theory, each cloud can use the computational and storage resources of the virtualization infrastructures of other clouds. Such form of pay-for-use may introduce new business opportunities among cloud providers if they manage to go beyond theoretical framework. Nevertheless, the Intercloud raises many more challenges than solutions concerning cloud federation, security, interoperability, quality of service, vendor's lock-ins, trust, legal issues, monitoring and billing.[citation needed]
The concept of a competitive utility computing market which combined many computer utilities together was originally described by Douglas Parkhill in his 1966 book, the "Challenge of the Computer Utility". This concept has been subsequently used many times over the last 40 years and is identical to the Intercloud.

 



 


Thursday, 24 March 2011

what is an android phone

Introduction:
Android is a Linux-based mobile phone operating system developed by Google. Android is unique because Google is actively developing the platform but giving it away for free to hardware manufacturers and phone carriers who want to use Android on their devices.
Beyond the Phone:
A modified version of Android is used in the Google TV, the Barnes & Noble Nook eReader, the Samsung Galaxy Tab, and countless other devices. Parrot makes both a digital photo frame and a car stereo system powered by modified versions of Android.
Open Handset Alliance:
Google formed a group of hardware, software, and telecommunication companies called the Open Handset Alliance with the goal of contributing to Android development. Most members also have the goal of making money from Android, either by selling phones, phone service, or mobile applications.
Google Services:
Because Google developed Android, it comes with a lot of Google services installed right out of the box. Gmail, Google Calendar, Google Maps, and Google Web search are all pre-installed, and Google is also the default Web page for the Web browser. However, because Android can be modified, carriers can choose to change this. Verizon Wireless, for instance, has modified some Android phones to use Bing as the default search engine.

Android is a Mobile Operating System, developed By Android Inc. and now, marketed by Google. Google and other members of Open Handset Alliance collaborated on Android development and release. Its software stack and framework is built on Linux kernel, which has been very instrumental in its seamless acceptance as an OS of choice in Mobile phones. Android OS consists of over 12 million lines of code written in C / C++ / Java and XML.
Android can be visualized basically as a framework of C C++ and Java libraries based on a Linux kernel. Because of this and the fact that Java apps can be effortlessly built through SDK’s the applications are portable on all mobile devices.


The Android system consists of 3 layered stacks:
  1. Application built in Java running on Dalvik Runtime Engine
  2. System Library written on C and C++
  3. Kernel based on Linux
Application Layer.
Java language was chosen as the development language. There are a lot of mobile developers who are well versed in Java and hence can have a seamless transition to writing Mobile apps and widgets on Android powered Smart phones
Java is a proven technology, portable on different software and hardware platform. Java is already available on majority of the mobile phones. Current Java on mobile (J2ME) have a lot of limitation, so major mobile phone company add in their own extension to the Java library, this makes portability of Java application on mobile more difficult. Normally Java was used to create Java games on mobile; many other applications are still build on the native OS and not on the Java layer.
Sun has been pushing Java technology on mobiles for years, it was successfully deployed on most of the mobile phones, but lack of standardization made it difficult to reach the depths of Mobile phone market.
Android has a very reach and standardized set of API’s and libraries, developers can use those API to develop games and applications, integrate well into mobile phones, and Java will make Android application portable on all (Android) mobile phones.
The Java program doesn’t run directly on Android, it is converted into Dalvik byte code. Basically Android can make any app run as long as it can be converted to Dalvik byte code.

The System Libraries.
The system libraries on Android mainly built on C and C++, so they are fast and efficient. Since the library runs on top of the Linux kernel, there are a lot of drivers and libraries available which can be customized as per the vendor’s requirement.

The Linux Kernel.
The Linux kernel was chosen because it was proven to be stable and powerful. Linux has good memory management, process management and already build in with many other functions like TCP/IP networking which is necessary for an operating system (especially you need it to connect to data network on your mobile).
For a new hardware mobile manufacturer, the first thing to do for building an Android platform is to build the device driver on the Linux kernel, there should be a lot of developers around who have the know-how to build the software stack from scratch or customize it from the available software.
There were a lot of companies trying to build mobile phone operating system based on Linux kernel before Android did, but have not been very successful.
Even Motorola and Nokia had released some mobile and internet devices which run on Linux operating system, but they were not very successful as well, like the Motorola A series phone started with A760. Nokia has an Internet Table device (N770) which was build using Linux operating system too. By technical point of view, Android using Java over Linux is a smart move. Both Java and Linux are proven technology, and provide portability for mobile application on Android platform.
Google has given a sneak peak of a new version of Android OS i.e. Version 3.0 named as Honeycomb. The specialty of this version is that it is specially designed for tablet PCs. Motorola Xoom is the first Tablet PC running this OS.

What is SSL certificate

SSL (Secure Sockets Layer) is the standard security technology for establishing an encrypted link between a web server and a browser. This link ensures that all data passed between the web server and browsers remain private and integral. SSL is an industry standard and is used by millions of websites in the protection of their online transactions with their customers.
To be able to create an SSL connection a web server requires an SSL Certificate. When you choose to activate SSL on your web server you will be prompted to complete a number of questions about the identity of your website and your company. Your web server then creates two cryptographic keys - a Private Key and a Public Key.
The Public Key does not need to be secret and is placed into a Certificate Signing Request (CSR) - a data file also containing your details. You should then submit the CSR. During the SSL Certificate application process, the Certification Authority will validate your details and issue an SSL Certificate containing your details and allowing you to use SSL. Your web server will match your issued SSL Certificate to your Private Key. Your web server will then be able to establish an encrypted link between the website and your customer's web browser.
The complexities of the SSL protocol remain invisible to your customers. Instead their browsers provide them with a key indicator to let them know they are currently protected by an SSL encrypted session - the lock icon in the lower right-hand corner, clicking on the lock icon displays your SSL Certificate and the details about it. All SSL Certificates are issued to either companies or legally accountable individuals.
Typically an SSL Certificate will contain your domain name, your company name, your address, your city, your state and your country. It will also contain the expiration date of the Certificate and details of the Certification Authority responsible for the issuance of the Certificate. When a browser connects to a secure site it will retrieve the site's SSL Certificate and check that it has not expired, it has been issued by a Certification Authority the browser trusts, and that it is being used by the website for which it has been issued. If it fails on any one of these checks the browser will display a warning to the end user letting them know that the site is not secured by SSL.

make your own Flash Game

1. Create a new movie with dimensions of 150px. X 280px. and fps = 29 with White color as Background Color
creating background
1. Select frame 1 on Layer 1

2. Create a rectangle with dimensions of 150px. X 280px. and apply 3 colors with white lines as shown in the image.
The major portion of the rectangle should be of 150px. X 205.5px.
3. Choose Insert > Layer to insert a new layer above Layer 1.

4. Create an Orange rectangle with dimensions of 138px. X 190px.

5. Insert one more layer for texts like Highest and Previous Scores and with the help of Text Tool type Highest Score and Previous Score as shown in the image.

6. With the help of Text Tool type text 'Chances' as shown in the image.


7. Choose File > Import to import any small graphic as a name of the game. Here we have imported speedball.png (To import Choose File > Import

8. Select frame 1 of all layers and choose Insert > Convert to Symbol. Convert it into a Movie Clip (Choose Insert > Convert to Symbol) with the center Registration point selected and name it as 'background1'




creating game movie clip
1. Select background1 movie clip, convert it into a Movie Clip (Choose Insert > Convert to Symbol) with the center Registration point selected and name it as 'game'

2. Rename the layer as 'Game' and delete other blank layers.

3. Double click the game movie clip to go inside it.
4. Rename the layer as 'Background 1'
5. Insert a new layer and name it as 'Highest Score'

6. Select the Text Tool and in the Properties panel make the settings as shown in the image with Center Justify option 'ON'.(If Properties panel is not opened then choose Window > Properties)
Create a text field below the text 'Highest Score'

7. In Properties panel type Variable as '_root.highscore'



8. Similarly, insert a new layer for 'Previous Score' and make a separate text field with Variable name as '_root.prevscore'

9. Insert a new layer above 'Previous Score' layer and rename it as 'Click Button'

10. Using Text Tool type 'click to play' with 'Static Text' as Text type in the Properties panel.

11. Select the text and convert it into a Button (Choose Insert > Convert to Symbol) with the center Registration point selected and name it as 'click play'

 

12. Double click the click play button to go inside it and rename the layer as 'Click Play'

13. Select frame at 'Hit' stage and choose Insert > Frame

14. Insert a layer over Click Play layer and drag it downward so that it appears below Click Play layer

15. Select frame at 'Hit' stage and choose Insert > Keyframe

16. Draw a rectangle patch as a 'hit area' of the button



17. Come back into game movie clip.

18. Select click play button and choose Window > Actions

19. In the Actions panel type the following actions


on (release) {
gotoAndPlay(2);
}

 
// This action will start the game as soon as 'Click to Play' button is clicked

create life indicator

1. Insert a new layer above Click Button layer and rename it as 'Life'

2. Create a gradient ball and convert it into a Graphic (Choose Insert > Convert to Symbol) with the center Registration point selected and name it as 'life bal

3. Select the life ball graphic and convert it into a Movie Clip and name it as 'life'

4. Double click the life movie clip to go inside it and rename the layer as 'Life Ball'

5. Select frame 8 and choose Insert > Keyframe

6. Select life ball graphic at frame 8 and in the Properties panel set 'Alpha=0'


7. Choose Window > Transform and in the Transform panel, type 10 in Width or Height field keeping Constrain option 'ON'
Page : 1 2 3 4
8. Select any frame between 1 and 8 and choose Insert > Create Motion Tween

9. Insert a new layer and name it as 'Actions'

10. Select frame 8 on Actions layer and choose Insert > Keyframe

11. Select keyframe at 8 and choose Window > Actions

12. In the Actions panel type the following actions

stop();
13. Now come back into game movie clip.

14. Select the life movie clip, convert it into a movie clip and name it as 'lives'

15. Double click the lives movie clip to inside it and select the life movie clip at frame 1

16. In the Properties panel change the Symbol Behavior to 'Graphic' and set Options for graphics as 'Single Frame'


17. Choose Edit > Duplicate to make a copy of the life movie clip. Make total 5 of them and place them in a row.


18. Select frame 3 and choose Insert > Keyframe

19. At frame 3 select the fifth life graphic and in the Properties panel change the Symbol Behavior to 'Movie Clip'


20. Select frame 5 and choose Insert > Keyframe

21. At frame 5 select the fifth life movie clip and in the Properties panel change the Symbol Behavior to 'Graphic' and set 'Alpha=0'

22. On the same frame select the fourth life graphic and in the Properties panel change the Symbol Behavior to 'Movie Clip'

23. Select frame 7 and choose Insert > Keyframe

24. At frame 7 select the fourth life movie clip and in the Properties panel change the Symbol Behavior to 'Graphic' and set 'Alpha=0'

25. On the same frame select the third life graphic and in the Properties panel change the Symbol Behavior to 'Movie Clip'

26. Similarly add keyframes on frame 9 and 11. Make necessary changes for these frames as per shown in previous two cases.

27. Insert a new layer for actions and select frame 1

28. Choose Window > Actions

29. In the Actions panel type the following action.

stop();
30. Similarly add keyframes on frame 3,5,7,9,11 and assign the same action on all these frames.

31. Now come back into the game movie clip

32. Select the lives movie clip and in the Properties panel type the Instance Name as 'life'

33. Insert a new layer above Life layer and name it as 'Actions'

34. Select frame 1 and choose Window > Actions

35. In the Actions panel type the following actions

Mouse.show();
stop();




1. Choose Window > Library > background1

2. In the Library window click the Options tab to open the menu and choose Duplicate...


3. In the Duplicate Symbol type 'background2' and create a copy of background1 movie clip


4. Double click the background2 movie clip in the Library to go inside it.

5. Delete the 'speedball' graphic and change the patch color from Orange to Green.



6. Choose Window > Library > game

7. Double click the game movie clip to go inside it.

8. Select frame 2 on background 1 layer and choose Insert > Keyframe

9. At frame 2 select the background 1 movie clip. In the Properties panel with the help of Swap Symbol button, swap background 1 movie clip with background 2 movie clip




10. Select frame 2 on Previous and Highest Score layers, choose Insert > Frame

11. Select frame 2 on Click Button layer and choose Insert > Blank Keyframe

12. Select frame 2 on Life layer and choose Insert > Frame

13. Select frame 2 on Actions layer and choose Insert > Keyframe

14. Choose Window > Actions

15. In the Actions panel type the following actions

_root.numx=12;
_root.numy=6;
_root.score=0;
_root.hit=5;


// numx, numy, score and hit are the variables which are initialized here at the start of the game.

16. Select frame 3 on all the layers and choose Insert > Frame

17. Insert a new layer above Background 1 layer and rename it as 'Score'

18. Select frame 3 on Score layer and choose Insert > Keyframe

19. With the help of Text Tool create a 'Dynamic' text field. In the Properties panel type Variable as '_root.score'




1. Insert a new layer above Score layer and rename it as 'Walls'

2. Select frame 3 on Walls layer, choose Insert > Keyframe and create a horizontal patch with two colors and Width = 142. The inside color should be of the same color of the background 2 movie clip's Green color and another should be Black.

3. Select these two color patches and convert it into a Movie Clip with the bottom center Registration point selected and name it as 'wall1'



4. Choose Edit > Duplicate to make another copy of wall1

5. Select the copy of wall1 and choose Modify > Transform > Rotate 90 degree CW

6. Choose Window > Info

7. In the Info panel type Height of instance as '190' and set both walls as shown in the image.



8. Duplicate the vertical wall and place it on the left side.

9. Choose Modify > Transform > Flip Horizontal

10. For the floor we want to create another movie clip.

11. Choose Window > Library > wall1

12. In the Library duplicate the wall movie clip and name it as 'wall2'

13. Select frame 3 on Walls layer and drag wall2 movie clip from the Library to the stage.

14. Choose Modify > Transform > Flip Vertical

15. Set the wall2 in such way that the walls create a complete rectangle.


16. Double click the wall2 movie clip to go inside it.

17. Insert 4 keyframes upto frame 5

18. On frame 2 and 4 change the color of the Black patch to Red.



19. Insert a new layer and at frame 1 assign the following action stop();
20. Select frame 4 and choose Insert > Keyframe

21. Select keyframe 4 and choose Window > Actions

22. In the Actions panel type the following action:

gotoAndStop(1);
23. Similarly insert a keyframe at frame 5 and assign the following action
tellTarget (_parent) {
gotoAndStop(5);
}


// this action will jump back into the game movie clip and stop at frame 5.
24. Now go back into game movie clip


1. Insert a new layer above Walls layer and rename it as 'Bat'

2. Select frame 3 and choose Insert > Keyframe

3. At frame 3 create a small Black rectangle with dimensions of 40px. X 5px.

4. Convert it into a Movie Clip with the top center Registration point selected and name it as 'bat'


5. In the Properties panel type Instance Name as 'bat'


6. Insert a new layer above Bat layer and name it as 'Ball'

7. Select frame 3 and choose Insert > Keyframe

8. At frame 3 create a small Black circle with dimensions of 7px. X 7px.

9. Convert the circle into a Movie Clip with the center Registration point selected and name it as 'ball'

10. In the Properties panel type Instance Name as 'ball'

11. Select frame 4 on all layers and choose Insert > Frame

12. Select frame 4 on the Actions layer and choose Insert > Keyframe

13. Select keyframe 4 and choose Window > Actions

14. In the Actions panel type the following action

gotoAndPlay(3);



// This action helps the actionscript to run continuously between frame 3 and 4.



For Game Over we need to create another background.
1. Choose Insert > New Symbol

2. In the Create New Symbol type name as 'background3' and convert it into a Movie Clip.


3. Create a dual colored patch with dimensions of 150px. X 280px. and a curved white line between two colors.


4. Insert a new layer and type text as 'Highest Score' and 'Previous Score'

5. Choose Window > Library > game

6. Double click the game movie clip to go inside it.

7. Select frame 5 on Background 1 layer and choose Insert > Keyframe

8. Select background2 movie clip and in the Properties panel swap it with background3 movie clip

9. Select frame 5 on Highest and Previous Score layer

10. Choose Insert > Keyframe

11. At frame 5 shift the score text fields to bottom and place them in front of respective titles.


12. Insert a new layer above Previous Score layer and name it as 'Last Score'

13. At frame 5 insert a keyframe and create a Dynamic Text Field

14. In the Properties panel type Variable name as '_root.score'

15. On the same frame type text as 'You Scored'



16. Insert a new layer above Last Score layer and name it as 'Game Over'

17. Select frame 5 and choose Insert > Keyframe

18. With the help of Text Tool type 'GAME OVER'



19. Select the text, convert it into a Movie Clip and name it as 'game over'

20. Double click the game over movie clip to go inside it.

21. Select frame 5 and choose Insert > Blank Keyframe

22. Select frame 8 and choose Insert > Frame

23. Come back into game movie clip.

24. Insert a new layer above Game Over layer and name it as 'Play'

25. Select frame 5 and choose Insert > Keyframe

26. Create a button or import any graphic and convert it into a button. Here we have imported 'play button.png' graphic. (To import Choose File > Import)




27. Select the graphic on the stage, convert it into a Button with the top left Registration point selected and name it as 'play'


28. Double click the play button to go inside it and rename the layer as 'Play'

29. Select frame at 'Hit' stage and choose Insert > Frame

30. Insert a new layer over Play layer and drag it downward so that it appears below Play.

31. Select frame at 'Hit' stage and choose Insert > Keyframe

32. Draw a circle of same size of play button graphic as a 'hit area' of the button

33. Select frame at 'Hit' stage on Play layer and choose Insert > Blank Keyframe



34. Come back into game movie clip.

35. Select play button and choose Window > Actions

36. In the Actions panel type the following action


on (release) {
gotoAndStop(1);
}


37. Select frame 5 on Actions layer and choose Insert > Keyframe

38. Select keyframe 5 and choose Window > Actions

39. In the Actions panel type the following actions


Mouse.show();
_root.prevscore = _root.score;
if (_root.prevscore>_root.highscore) {
_root.highscore = _root.prevscore;
}
stop();


// _root.prevscore = _root.score;
This action assigns the value of 'score' variable into 'prevscore'

accessing game actions to objects
1. At frame 3 of Walls layer select the top wall

2. Choose Window > Actions

3. In the Actions panel type the following actions


onClipEvent (enterFrame) {
if (this.hitTest(_parent.ball)) {
_root.numy = 12;
_root.go=1;
}
}


// This action checks the collision of ball with the wall and assigns a new value '12' to 'numy' variable. It also assigns value '1' to a new variable 'go' which is not initialized yet. When any variable is not initialized then its default value is considered as '0'

4. Now select the wall on the right hand side

5. In the Actions panel type the following actions


onClipEvent (enterFrame) {
if (this.hitTest(_parent.ball)) {
_root.numx = -random(10);
_root.go=1;
}
}


// This action checks the collision of ball with the wall and assigns a new value '-random(10)' to 'numx' variable. '-random(10)' generates any number from 0 to -9.

6. Select the wall on the left hand side

7. In the Actions panel type the following actions


onClipEvent (enterFrame) {
if (this.hitTest(_parent.ball)) {
_root.numx = random(10);
_root.go=1;
}
}
// This action checks the collision of ball with the wall and assigns a new value 'random(10)' to 'numx' variable. 'random(10)' generates any number from 0 to 9.

8. Select the floor (wall2 Movie Clip)

9. In the Actions panel type the following actions

onClipEvent (enterFrame) {
if (this.hitTest(_parent.ball)) {
_root.hit--;
_root.go=2;
_parent.life.play();
_root.numy = -12;
gotoAndPlay(2);
}
if (_root.hit == 0) {
gotoAndStop(5);
}
}



// _root.hit--;
Everytime when ball hits the floor, this action reduces the value of variable 'hit' by 1.

// _root.go=2;
This action assigns value '2' to variable 'go'

// _parent.life.play();
This action targets the life movie clip and starts playing it.

// _root.numy = -12;
This action assigns a new value '-12' to variable 'numy'

// if (_root.hit == 0) {
gotoAndStop(5);
}
}
This action checks whether the value of variable 'hit' is exactly '0' then the actionscript will stop at frame 5.


10. At frame 3 of Bat layer select the bat movie clip.

11. In the Actions panel type the following actions

onClipEvent (load) {
startDrag("", true, -46, 120, 46, 120);
Mouse.hide();
}
onClipEvent (enterFrame) {
if (this.hitTest(_parent.ball) && _root.go == 1) {
_root.numy = -12;
_root.score++;
}
}



// onClipEvent (load) {
startDrag("", true, -46, 120, 46, 120);
Mouse.hide();
}
This action helps the bat movie clip to drag in a specific area with the help of mouse. At the same time it hides the mouse.

// if (this.hitTest(_parent.ball) && _root.go == 1)
This action checks two conditions at a time. It checks whether ball hits bat and the value of variable 'go' is exactly '1'

// _root.numy = -12;
This action assigns a new value '-12' to variable 'numy'

// _root.score++;
Everytime when ball hits bat, this action increments the value of variable 'score' by '1'


12. At frame 3 of Ball layer select the ball movie clip.

13. In the Actions panel type the following actions

onClipEvent (enterFrame) {
setProperty(this, _x, getProperty(this,_x)+ _root.numx);
setProperty(this, _y, getProperty(this,_y)+ _root.numy);
}


// setProperty(this, _x, getProperty(this,_x)+ _root.numx);
This action determines the x position of ball.

// setProperty(this, _y, getProperty(this,_y)+ _root.numy);
This action determines the y position of ball. Both these actions determines the movement of the ball.

14. Select the wall2 movie clip (floor) and shift it slightly down so that it creates some space between the bat and itself.


Now come back into Scene 1 and on a new layer create an outline to the game. Note: After finishing upto here you can place the ball anywhere in the game. When the game will start the ball will start falling from that point.
Choose Control > Test Movie and see how the game works. If you wish to increase the speed of the game, change the frame rate (fps) of the flash movie (Choose Modify > Document). Make it 35 or 40. It will increase the speed of the ball and the game will become more difficult to play.



// if (_root.prevscore>_root.highscore) {
_root.highscore = _root.prevscore;
}
This action checks whether value assigned to 'prevscore' is greater than 'highscore'. And if it is true, then the new value of 'prevscore' is assigned to 'highscore'.