Mashup Advantages and Disadvantages
What is mashup?
The using of mashup in the proposed architecture become important issue when noticed that there are some problems that face webmasters, Web developers, and Web designers in their everyday work. This problem comes from the nature of Web technology. Big part from this problem could be solved using mashup, since it is fairly easy to implement the Web content systems from different online services. Mashup is a Web page or application that combines resources or functionalities from two or more sources creating a new application or service. Mashup is an emerging software engineering paradigm aligned with the trend towards the programmable Web. Mashup is based on the longest tail theory which is from business perspective to allow the use of different services and to break down business processes into smaller pieces.
The history of mashup comes from music industry before it become an Internet popular concept in which musicians combine mixture of two or more tracks to create a new song that is called mashup. Today Web mashups are becoming one of the salient tools for providing composite services to meet users request and open a new area for researchers with many endeavors to enhance this technology for Web developers and designers. Many approaches used now for mashup of Web contents and Web technologies to provide a mobile Web contents, to offer Web application, or even for Web application programming interface (API). One of these contributions is a method to utilize the social and functional relationships among Web APIs to produce and recommend the chains of candidate mashup.
Mashup advantages and disadvantages
While mashups are a very useful tools, there are some advantages and disadvantage, as follows.
Mashup advantages
- Allow for the reuse of existing applications: is the most powerful benefit in which the user can use preexisting one to implement the new feature to embed in the new Web application, this enable reusability of existing services or data,
- Time saving and rapid development: this comes from the first advantage in which the user will be able to rapidly develop new applications with new features,
- No extensive IT skills required: most of the work is abstracted behind the scenes and the user only needs to learn how to implement it without extensive IT or programming skills, and
- Cheap cost efficient: the preexisting applications that were previously developed will serve in which, there will be no money re-investment on long development schedules or training for developers to implement the features from scratch.
Mashup disadvantages
- Service reliability and QoS: the user is dependent on the other developers to make sure that the application does what it intends to do without bugs and there is no control over the quality or the features for the implemented component,
- Integrity of content no warranted: the user will have no choice but to replace the service if it stop working or API gets discontinued and there is no guarantee this component will be continuously supported,
- Scalability issues: if Web application has a bigger grows, there is no guarantee that the service to be implemented will continue working,
- Security: if there is sensitive data working with the mashup API, it may be subject to a security concern, the contents used in the mashup are not guaranteed to be secure,
- There are no standards: another difficulty in designing and implementing mashup to ensure the integrity of the data being used is that there are no standards for the development or application of a mashup, and
- Most data sources are not made as a service: all traditional application design and development were done before the mashup technology, thus if the developer decide to access data using mashup, it must be implemented first as a service before starting
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
The Two Extremes of Mobile Applications
The foundation for a new era of computing model, which is called mobile cloud computing, comes from the combination of cloud computing, portable computing devices, wireless communication, location based services, mobile Web, etc.. The mobile devices allow the users to access an unlimited computing power and storage space within the mobile domain. There are many hurdles to overcome in mobile cloud computing. The existing cloud computing tools tackle only specific problems such as flexible virtual machine, managing parallelized processing on massive data volumes, and large data storage.
Mobile devices inherently have and will continue to have limited resources as processing power, memory capacity, display size, and input forms. These have been the forming factors of existing mobile application approaches. This is why mobile computing is characterized by severe resources constraints and frequent changes in operating conditions. To identify the fundamental challenges in mobile computing, many research are done in this area. The full potential of mobile cloud applications lies in between the following two extremes:
1. Mobile clouds native applications (offline applications)
This is the first model that most of the applications available for modern mobile devices fall into, which is often called “native applications”. The periodical synchronization between the client and backend system is the main issue here. This model acts as a fat client because the processing of the presentation and business logic layer is locally done on the mobile devices, while the data is downloaded from the backend system. Most resources are available locally on the fat client, rather than distributed over a network as is the case with a thin client. As with everything in computer world there are advantages and disadvantages, below are some of them.
Offline applications advantages:
- Have a good integration with device functionality.
- A full access to device features.
- Have a great performance optimized for specific hardware or multitasking.
- Even if there is no network connectivity, always have available capabilities.
Offline applications disadvantages:
- No portability to other platforms.
- Complex coding.
- Increased time to market.
- Developers need to learn new programming languages.
2.Web applications (online applications)
This application model requires that the connection between the mobile devices and the backend systems are available most of the time. This application type is based on the Web technology that is a powerful alternative to native applications in which the cross platform issues are solved. The advantages of this model overcome some of the disadvantages of the offline applications, but it also has some disadvantage.
Online applications advantages:
- Considered as multi platforms.
- Directly accessible from anywhere any time whenever there is connection.
- The learning curve required to start creating mobile applications is greatly minimized, because the knowledge of most Web technologies is currently widespread among developers.
Online applications disadvantages:
- Too much introduced latency for real time responsiveness.
- Device’s features access is limited such as camera or motion detection.
- Difficulties in handling complex scenarios that require keeping communication session for long period of time.
When accessing remote data and services, mobile clients could face problems like, wide variations, rapid changes in network conditions and local resource availability. The execution of current applications could be partitioned to happen on the device or on backend systems, because of this statically partitioned one partitioning model does not satisfy all application types and devices. The computation of clients and cloud has to be adaptive in response to the changes in mobile environments. Mobile cloud applications must react with dynamical adjusting of the computing functionality between the mobile device and the cloud depending on circumstances, in order to enable applications and systems to continue to operate in such dynamic environments.
Many researchers work on how could dynamically shift the responsibilities between mobile device and cloud. Some shown how to achieve that is by replicating whole device software image or offloading parts of the application, so the offloading can happen to some remote data center, nearby computer or cluster of computers, or even to nearby mobile devices, due to the unstable mobile environments. Many factors need to be incorporated in a cost model, and fast predictive optimizing algorithms decide upon the best application execution, thus for many years to come mobile cloud computing will become challenging research area.
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
Cloud Architecture
A massive network of servers or even individual PCs interconnected in a grid is the key of cloud computing. These computers run in parallel, combining the resources of each to generate super computing power. One of the primary benefits of cloud computing is a vast amount of computing power achieved from relatively low cost PCs and servers.
The collection of computers and servers that is publicly accessible via the Internet creates the cloud. This hardware is typically owned and operated by a third party on a consolidated basis in one or more data center locations. The machines can run any combination of operating systems. Cloud architecture is deceptively simple, although it does require some intelligent management to connect all those computers together and assign task processing to multitudes of users.
One of the primary uses of cloud computing is for data storage in which data is stored on multiple third party servers rather than on the dedicated servers used in traditional networked data storage. When storing data, the user sees a virtual server and it appears as if the data is stored in a particular place with a specific name. The place does not exist actually and it is just a nickname that is used to reference the virtual space from the cloud. The users data could be stored on any one or more of the computers used to create the cloud, as the cloud dynamically manage available storage space. But even though the location is virtual, the user sees a static location for the data and can actually manages the storage space as if it resides in his own PC. In addition, multiple copies of the same data are stored in the cloud servers. The duplication of the data are kept continually; so the cloud continues to function as normal even if one or more servers go offline or even crashes. Cloud computing solutions are made up of several elements, the clients, the data center, and the distributed servers, as illustrated by Figure 1.1.
- The client’s component
Is the first of the cloud components, and it could be described as the devices that the end users interact with to manage their information on the cloud. Clients are the exact same things that they are in the traditional computing. Clients fall into three main categories:
- Mobile devices which include PDAs or smart phones, like a Blackberry or an iPhone,
- Thin clients which are computers that do not have internal storage, but rather let the server do all the work then just display the information, and
- Thick clients which are regular computers using a Web browser like Firefox or Internet Explorer to connect to the cloud.
- The data center component
These are the collection of web hosting servers where the application to which the user subscribe is hosted. It could be a large room in the basement of a building or a room full of servers on the other side of the world that the user can access via the Internet. A growing trend in the IT world is software that can be installed allowing multiple instances of virtual servers to be used called virtualization servers.
- Distributed Servers
These servers don’t have to be housed in the same location, these servers are hosted in geographically different locations, and the cloud subscriber does even see that. These servers act as if they are single group right next to each other. This gives the service provider more flexibility in options and security. For instance, Amazon has their cloud solution in servers all over the world. If something were to happen at one site, causing a failure, the service would still be accessed through another site. Also, if the cloud needs more hardware, they need not throw more servers in the safe room they can add them at another site and simply make it part of the cloud.
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
Cloud Computing Virtualization
Virtualization and cloud computing are dovetailed. Virtualization is a technique in which a complete installation of one machine is run on another. The result is a system in which all software running on the server is within a virtual machine. Virtualization could be one-to-many or many-to-one. One-to-many enables the users to create many virtualized resources from one physical resource. This approach maximizes the resources utilization. Virtual resources hosting individual applications are mapped to physical resources to provide more efficient server utilization.
Many-to-one virtualization enables the creation of virtual or logical resources from multiple physical resources. This is the core context of cloud computing in which multiple physical resources are grouped together to form one cloud. Virtualization refers to OS virtualization as administrators can implement it by VMware, Xen, or other hypervisor-based technologies. Virtualization is not cloud, rather an enabler for establishing and managing clouds. In the Cisco cloud concept, virtualization is extended to incorporate various types of virtualization, such as network, computer, storage, and services. Generally, there are five varieties of cloud services and four types of deployment approaches, Figure 1.1 illustrates these concepts.
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
Cloud Deployment Approaches
Cloud computing services are offered through some cloud deployment approaches. Cloud deployment service can be classified into four main types, public, private, community, or hybrid. Cloud framework begins with the physical hardware of the cloud. The virtualization layer comes above the hardware layer, the next layer is the cloud management layer, and the final layer is the cloud services layer which is deployed by the cloud providers to make the cloud provisions available to the cloud consumers such as IaaS, PaaS and SaaS. Figure 1.1 illustrates this concept.
Cloud deployment models used to power the organization to provide services to its customers, choosing the deployment model is one of the biggest challenges that face any organization. One of the most common strategies is the public cloud services for development and test or less critical applications, allocating business critical applications to a more enterprise class cloud and running their mission critical apps on an in house cloud. Following is a discussion of the deployment types. Figure 1.2 illustrates the current percentage for each of these types.
Private Clouds
When there is an internal data centers of a business or organization and is not made available for the public, it is called a private cloud. Sometimes private cloud named as an internal cloud and this type of cloud exists within the boundaries of an organization. Private cloud is a computing platform or architecture that provides hosted services to a limited number of people behind a firewall. The infrastructure for private cloud is operated solely for a single organization, but it managed internally by a third-party that hosted internally or externally. The virtualization and distributed computing is required to setup a private cloud project, this makes the organization reevaluate decisions about existing resources. Organizations should buy, build, and manage the hardware and software by themselves.
Private cloud is designed to offer the same features and benefits of public cloud systems, but removes a number of objections to the cloud computing model including control over enterprise and customer data due to worries about security and issues connected to regulatory compliance. Because a private cloud setup is implemented safely within the corporate firewall, the implementation is aimed to avoid many of the objections regarding cloud computing security. A private cloud provides more control over the company’s data and ensures security, albeit with greater potential risk for data loss due to natural disaster. When an organization implements the private cloud, it is responsible for running and managing the IT resources instead of passing this responsibility on to a third-party cloud provider.
Public Clouds
Public cloud is a computing environment that consists of a set of computers and computer network resources based on the standard cloud computing model that is open for use to the public. Public cloud is a cloud services provided by third parties but hosted and managed by the service providers. The infrastructure is owned by an organization that sale the cloud services to the general public or to a large industry group. Using public cloud, users could delegate all service management and support to the service provider who is taking the responsibility of installation, management, provisioning, and maintenance. Applications, storage, and other resources are made available to the general public by the service provider. Public cloud customers only access and use the services and physical resources and they are charged for the used resources and services only.
There is a special type of deployment model called Virtual Private Cloud (VPC) that comes to exist when the service provider uses public cloud resources to develop a private cloud environment. Users can create a VPC as configurable pool of shared computing resources allocated within a public cloud environment. Figure 1.3 illustrates the way to create virtual private cloud. The cloud provider usually choose the hardware and the cloud users cannot do this like in the private cloud. The virtualization and device independence is very clear in this type, so the public cloud can be described as an external cloud when viewed from within a given organization.
Community clouds
When sharing infrastructure between several sites and organizations with common issues such as security, compliance, etc., this is called a community cloud. It is hosted internally or externally and could be managed internally or by a third party. The cost is spread over fewer users than a public cloud, only some of the cost savings potential of cloud computing are realized. Community cloud is best when looking for energy, cost efficiency, and vertical applications. Any software that support specific business processes to targets a smaller number of users within an organization called a vertical application. Enterprise Resource Planning (ERP) and Customer Relationship Management (CRM) are examples of vertical applications.
All kinds of underutilized and unutilized computing machines are being networked, clustered, and virtualized to act as a community cloud that is capable of effortlessly to tackle specific needs of a particular community. Community cloud offers an alternative architecture for the use cases of cloud computing. The community cloud is not owned or controlled by one organization, and therefore not dependent on the lifespan or failure of any one organization. It is resilient to failure and robust, with no system wide cascade failures, because of the diversity of its supporting nodes. Community cloud offer control convenience because its community ownership provides for democratic distributed control. Community cloud makes use of underutilized user machines that require much less energy than the dedicated data centers required for vendor Clouds.
Hybrid Clouds Enterprises
The combination of private, community, and/or public clouds are called hybrid clouds. This composition of two or more clouds offers the benefits of multiple deployment models. This type of composition expands deployment for could services and allow organizations to use public cloud resources to meet temporary needs. This allows hybrid cloud to enable cloud bursting for scaling across clouds. The common big misperception is that cloud computing implies an external cloud, based on public cloud services. But the fact is that cloud computing is how to approach information technology. It is a way of doing computing, not a destination. Most enterprises will benefit from adopting cloud computing within their own data centers building which is a private clouds, and getting there in an evolutionary way through their existing virtualization technology. Figure 1.4 illustrates how hybrid cloud infrastructure works.
Cloud bursting is an application deployment model in which an application runs in a private cloud or data center and bursts to a public cloud when the demand for computing capacity increases. Primary advantage of cloud bursting and a hybrid cloud model is that an organization only pays for extra compute resources when needed. Cloud bursting enables data centers to create an in house IT infrastructure that supports average workloads and use cloud resources from public or private clouds during spikes in processing demands. A high degree of fault tolerance combined with locally immediate usability is obtained when using hybrid cloud architecture without depending on Internet connectivity. Hybrid cloud architecture requires both on premises resources and off site or remote server based cloud infrastructure. Hybrid cloud provides the flexibility of in house applications with the fault tolerance and scalability of cloud based services.
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
Evolution of the Internet
The Internet is far more than just the World Wide Web. The Web was created in 1989 and became popular in the 1990s. In contrast, the Internet is a product of the1960s. The Internet is a vast network of networks that electronically connects millions of people worldwide. It was formed in 1968, when the U.S. Department of Defense’s Advanced Research Projects Agency (ARPA) funded what would become the first global computer network, the Advanced Research Projects Agency Network (ARPANET). ARPA later became the Defense Advanced Research Projects Agency (DARPA). The ARPANET allowed university and government engineers to research and work from any location on the network. ARPANET’s design featured multiple hosts and multiple connections among those hosts, which greatly reduced the chances of total network failure. There was no central hub, which would have created a point of vulnerability; rather, control was spread throughout the network. This decentralization resulted in a robust and reliable network that would continue to function even if some of the hosts were incapacitated.
In 1989, the Department of Defense decommissioned the ARPANET, and all the sites switched over to the National Science Foundation (NSF) network, called NSFnet. The NSF increased the number of supercomputers to five and added access to more networks, expanding the range of sites for businesses, universities, and government and military installations. The NSFnet, plus thousands of others, compose what has become the largest network of networks: the Internet.
The World Wide Web if the most important concept to remember is that the Web is not a network itself, like the Internet, but a set of software programs. These programs can be used on many different computer networks, including the Internet and your company’s computer network, the Web presents information through multimedia formats: graphics, sound, animation, and video. It employs several tools to provide a visual layout: hypertext links, browser software, and code structure.
The Web resembles an electronic library, and therefore each location or Web site is like a book. Each book has a contents page that directs you to the other pages in the book, as well as to all the other books in the electronic library. At the beginning of the internet these books are created using the Hypertext Markup Language (HTML), after a while there was another technologies that embedded with HTMLs along with interactive objects such as Java, JavaScript and VBScript can add extensive functionality to Web pages.
As we see in this brief overview for the evolution of the internet and the web, we notice that the web was first design to just provide information that could be accessed from desktop computers, in the early days of the web there was no mobile devices and there was no need to access it from such devices, but now a days when the mobile technology run very fast and when mobile become an important part of our daily life here accessing the Internet from mobile devices is becoming increasingly popular. Web access from mobile devices presents its own unique challenges, Mobile web users face a big problem that the majority of web content is tailored for desktop computers; there were many trials to solve this problem. The principal objective is to improve the user experience of the web when accessed from such devices.
Researchers try to find solution to make mobile web users able to run the web from their devices but they face many problem and they have to solve them, there was many problems that is related to the hard ware of the mobile devices like small display area, lower processor memory and many other limitations that we will discuss, and there is also some software problems like each mobile device run its own operating system and its web browser also, here in this thesis we will focus on the problem of different screen size and how can we adopt the web site to match this verity of screens.
There was much researches that was done in this area, some of them focus on how can we have two versions of each web site one for the desktop users and other for a mobile users and how the mobile version should be, some others focus on create only one version and have a small module that re-author the original web to have a new version that could match the mobile users, also there was some peoples say that we don’t have to make another version to match mobile we can run the desktop version if we don’t have much users for this web site.
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
Exceptional Performance for Improving Web Site Performance
Browsing Web site is an important example of client server model in the world, if you plan to create a web site you should know that the client browser will get a local copy of the desired page to your machine then render it from the local source, so if the page what the user want to show it is a large size user will go out and will not back again, this problem led us to design a very light page size, page size is the total of the page code and all its content like images, scripts, CSS and any content that the user will see it.
If we target a good exceptional performance for mobile web or even desktop user we must follow some practices for making web pages fast, Yahoo!’s exceptional performance team evangelizes best practices for improving web performance. They conduct research, build tools, write articles and blogs, and speak at conferences. Their best practices center on the rules for high performance web sites, the principal objective is to improve the user experience of the Web when accessed.
The Exceptional Performance team has identified a number of best practices for making web pages fast. The list includes 34 best practices divided into 7 categories:
Content
- Make Fewer HTTP Requests
- Reduce DNS Lookups
- Avoid Redirects
- Make Ajax Cacheable
- Post-load Components
- Preload Components
- Reduce the Number of DOM Elements
- Split Components across Domains
- Minimize the Number of iframes
- No 404s
Server
- Use a Content Delivery Network
- Add an Expires or a Cache-Control Header
- Gzip Components
- Configure ETags
- Flush the Buffer Early
- Use GET for AJAX Requests
Cookie
- Reduce Cookie Size
- Use Cookie-free Domains for Components
CSS
- Put Style sheets at the Top
- Avoid CSS Expressions
- Choose <link> over @import
- Avoid Filters
JavaScript
- Put Scripts at the Bottom
- Make JavaScript and CSS External
- Minify JavaScript and CSS
- Remove Duplicate Scripts
- Minimize DOM Access
- Develop Smart Event Handlers
Images
- Optimize Images
- Optimize CSS Sprites
- Don’t Scale Images in HTML
- Make favicon.ico Small and Cacheable
Mobile
- Keep Components under 25K
- Pack Components into a Multipart Document
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”
Overview About Mobile Devices
Today there are hundreds of mobile phones in the market; mobile phones are not the only mobile devices there are also pocket computer devices like PDAs, micro notebooks and handheld notebooks, here I will take about mobile phones, PDA and some other mobile devices.
Mobile Phones
The largest segment for mobile devices, they have specialty processor and there own operating system the widely used is Symbian or windows mobile but there is also others, At the first development of mobile phone its use was voice and text messages but the technology over the years go fast for other uses like play music, photos, run applications and many other options this change the use of mobile from simple feature phone to smart phone.
The standard input for mobile phones is a 12 keypad with additional function keys, some other have joystick that can be used in navigation, with wider screen models there was other style available like input through touch screen keyboard like iPhone, some others have a keyboard input like Nokia E61, 63 or 71. Today most of mobile phones come with web browser like opera mini which is the most popular web browser some other come with different types of browsers.
Personal Digital Assistants (PDA)
Personal Digital Assistants (PDA) is the other class of mobile devices, it contain many other business features and productivity applications like office and emails, the most important that it can have their custom software, they have QWERTY keyboard in the device or screen, phone function is add on for PDSs, this type of devices are very popular with business users and merging phone with the device itself.
Other Mobile Devices
Micro notebooks and handheld notebooks can be classified as a mobile device, technology expect many hybrid devices to come up in the next few years that will have higher computing power and mobile communication technology.
OneHoster is one of the best web hosting companies in Egypt, we offer many web hosting packages in Egypt and middle east like, cPanel storage hosting packages, cloud hosting, domain registration, dedicated servers solution, Email hosting, WordPress hosting, web hosting upgrades and hosting renewals to suit your requirements to host your website for small and medium sized businesses. OneHoster is also one of the top 10 website design companies, and top 10 digital marketing companies in Egypt and Middle east.
“OneHoster’s Team”