Software

Microsoft SQL Azure – Microsoft Takes SQL Databases to the Clouds

A brand new Microsoft SQL technology just hit the marketplace on January 1, 2010. Or maybe it would be better to say that a re-branded Microsoft technology just hit the marketplace. Azure services is Microsoft’s most significant step into cloud computing. It functions as a complete platform in the cloud with computing, storage and fabric-tying individual systems into an integrated network that can balance processing load or share resources.

What is SQL Azure?

The part that is most pertinent for this review is how Azure relates to SQL. Microsoft used to call this service SQL Server Data Services and then SQL Services before recently changing it finally to SQL Azure. The name change just represents another step in the same direction that SQL server has already been headed with cloud computing.

SQL Azure provides data storage “in the cloud,” much like Amazon S3 and many Google Apps. One of the big advantages for SQL Azure is that relational queries can be made against data stored in the cloud, regardless of whether they are structured, semi-structured or unstructured documents. Besides making data queries, users can also search, analyze, or synchronize with SQL data stored by Azure.

Once your information is uploaded to SQL Azure, applications can make direct queries to the data in the cloud through the Internet. This works for local or cloud-based applications (such as applications that run in the computing portion of Microsoft’s Azure services). Provisionment and synchronization should be seamless between local SQL servers and the SQL Azure database. Microsoft also guarantees high fault tolerance by keeping multiple available copies of your data.

Why Use SQL Azure?

Microsoft claims that the major advantage SQL Azure provides is less maintenance. The service eliminates your need to store and manage SQL databases locally. In theory, administrators shouldn’t have to install database software or worry about setup, patching and managing their server systems. Nor are there hardware needs with servers, disaster recovery, or high availability. Physical maintenance and administration is unnecessary, so companies can feasibly save on staffing costs as well. If the headache of managing database servers is getting to you, this may be a great option.

One of the other advantages is easy scalability. If you need to increase or decrease your database storage, Microsoft takes care of that too. This is one of the differences between SQL Azure and other hosting services: data storage is distributed between multiple nodes and you simply pay as you go for the storage used. SQL Azure can work as an adjunct to existing database hardware. If you expect a sudden spike in data needs or even want to be prepared in case one happens unexpectedly, Azure can be available for heavy times, but you can return to local or other storage when the need is gone.

Another advantage of scalability is that it provides workable but cost-effective service for the database needs of small and medium-sized businesses.

Microsoft also expects Azure services to enable independent software writers who want to offer their software as a service (SaaS). Azure services can provide for all of the computing needs this model requires, but of course, SQL Azure would meet the database needs for this software. Feasibly, this could even simplify data security, since Microsoft is responsible for storing it. Line of Business (LOB) applications built on Azure computing services could use SQL Azure in the same way.

As with any kind of cloud computing, one final advantage is that the information is available for any applications or queries as long as they are connected to the Internet. But one related benefit of moving SQL databases to the cloud is that it consolidates data (such as databases in multiple departments of a large company) and integrates information better. This should enable more complex queries that stretch across multiple database tables.

Putting all of these together, the simple advantage is an economy of scale: the cost of letting Microsoft do SQL should be easily less than the total cost of hardware, software, and maintenance (TCO).

It’s All in the Details

Now the nitty-gritty. As far as programming model changes, most things stay the same, though a few details will be different. The core difference is that fully relational data has replaced an entity-based and ACE programming model. To access data, T-SQL is still the code, though developers will need to make a few changes to interact with the fully relational database service. Most data-access frameworks such as ADO.NET Data Services can still be used with minimal changes. Data transfer is through an XML-based format, the query language is T-SQL, and Tabular Data Stream is the protocol for internet access.

How is SQL Azure different from SQL Server? Azure works on top of SQL server. But SQL Azure also adds new relational data functions within the cloud. The biggest difference is as stated above -ease-of use, simplicity, and availability everywhere. The CTP is available for free on Microsoft’s web-site, but get there fast. Some things will no longer be available for free at the end of January. Microsoft has made significant changes to the software in the last few months, and there are major differences in each of the production versions.

And what about pricing? Microsoft offers 1 GB of relational database space for $9.99/month, up to 10 GB for $99.99/month, and data transfer fees of 10 cents in and 15 cents per BG. There are also a few options: you can pay as you go with no monthly commitment and fee, or you can get better prices by committing to 6 months with a base fee.

No surprise-the new Azure services definitely represent Microsoft’s commitment to the future of cloud computing. SQL Azure is a huge part of this innovation and provides great support for web 2.0 applications. The greatest benefit is probably for small and medium-size businesses or independent software writers that need cost-effective storage and computing. If Microsoft’s hunch about future computing is right (and it probably is), getting into the market first is a good strategy. It will only remain to be seen whether SQL Azure manages to stay the best cloud SQL database technology available.

Rob Collins is the editor of for several resource centers, including SQLServers.net, a SQL Database Technology Portal and Resource Center.
Visit SQLServers.net for more great SQL Tips and SQL Tools and information.

Author: Rob Collins
Article Source: EzineArticles.com
Unix inter-process communication (IPC)

Cloud Computing – What is That?

You may have heard a lot about Cloud Computing recently and maybe you are getting confused.  You are in good company. I saw a video recently where dozens of experts were asked what it is. And there were dozens of different answers (including ‘when I use my laptop on a plane’).  You may even have seen Larry Ellison’s rant on YouTube:

“The computer industry is the only industry that is more fashion-driven than women’s fashion. Maybe I’m an idiot, but I have no idea what anyone is talking about. What is it? It’s complete gibberish. It’s insane. When is this idiocy going to stop”

Lets lay down some definitions to clarify this confusion.  Cloud Computing generally means that instead of running your application on your computer, you run it on someone else’s computer and access it via a web browser.  The term comes from the ubiquitous use of a cloud to represent the Internet on PowerPoint presentations. Instead of buying your application from a software house, you run it from the Internet and pay for it when you need it.  Last year this approach was called Software as a Service (SaaS).  However that was very 2008;  these days you refer to Cloud Computing.   

Cloud computing 1970′s style

Running an application remotely over a network is of itself not a very new concept.  In 1980 I produced a company budget using a teletype machine connected via a dial-up line to an ADP computer somewhere in the cloud that was the ADP network. I paid by the hour and all the budget runs cost about $3,000 in total.  The following year I found I could save a lot of money and get a quicker result by running a brand new spreadsheet program called Visicalc on a $2,000 Apple II computer. Thus began the decline of cloud computing; 1970′s style. 

Cloud computing 2000′s style

Roll forward a couple of decades and networks have got a great deal faster and cheaper.  The economics are different, and cloud computing is looking a good alternative to supporting individual PC applications or even your own mainframe.

Can you search on Google, find an application and be up and running with your new billing system the same day?  Possibly not.  These are the people you might come across.

Force.com 

Salesforce.com provides the market-leading contact management service. This is now called either sales force automation (SFA) or customer relationship management (CRM) depending on whether you are dealing with prospective or existing customers.   The Salesforce software is provided on their own mainframes and is accessed via a browser.  They charge per month per user.

In some industries, such as financial technology, Salesforce.com is ubiquitous.  In fact they have such a high market penetration that to grow further they have to diversify.  Their chosen route is to create a website (force.com) where other people can offer their applications to run on their platform.  They call it the AppExchange. 

There are over 800 applications listed, the vast majority of which seem to be add-ons to the Salesforce.com system.  This is however obviously a very interesting concept and other non-salesforce applications are being added.

Netsuite

Netsuite is a complete CRM, SFA, Accounting, ERP (enterprise resource planning)  and ecommerce system provided as software as a service. They don’t call their main application Cloud Computing, instead they have a ‘Cloud’ offering which consists of other peoples add-ons – a bit like the AppExchange concept.  

Google

Google have a suite of office applications that run ‘in the cloud’.  These could be very useful if you have a special need to share the documents with others. 

Amazon

Amazon has a Cloud offering which in its raw state is a virtual private server (VPS).  This is a login to a Unix or Windows computer that looks and feels as if you have the computer all to yourself.  Physically you are sharing the computer with many others but this is all hidden from you. 

There are many VPS services on offer from many suppliers.  However the Amazon offering has a big difference.  When you create a server you can specify that it is to be preloaded with software from a library.  This is what transforms it into ’Cloud Computing’ rather than just any old VPS. Because the library of functions is pre-tested and pre-installed the startup time and cost should be much reduced.

Hosting providers

If Amazon can market a VPS offering as Cloud Computing, then the door is opened for many others to do the same – but without the preloaded software bit.  You might see this as ‘Cloud Hosting’ instead. Thus the definition of the term is migrating as we watch it. 

About the author

Bob Browning has been working on web development projects since 1995. He heads a small team of web developers in London who work with designers on their web projects. If you need help with web technology please check our website: http://www.textor.com

If you are in the UK and are interested in Netsuite please give us a call as we have a very good UK based Netsuite partner we can recommend.

Author: Bob Browning
Article Source: EzineArticles.com
Unix inter-process communication (IPC)

Is Cloud Computing Right For You?

In their “Top 10 Areas IT Pros Can’t Ignore” Gartner listed Cloud Computing as number one. Cloud is a metaphor for the Internet. Over the last 5 -10 years, more and more companies have been delivering software via the Internet. These companies own the software and deliver it as a service, instead of having their clients own and maintain it. The actual applications reside on servers all over the web, in the cloud.

Some of the most common business benefits for cloud computing are:

  • Cost savings through pay-as-you-go pricing
  • Up and down scalability
  • Easy access to services from any machine to the network
  • Collaboration capabilities with easier access to shared records and applications
  • Flexibility to use resources on demand
  • Capacity to outsource larger computing needs and non-critical applications

The Obama administration is encouraging Federal agencies to adopt cloud-based solutions for a variety of their activities. In a recent F.A.Q. published in the government archives, three different models of service and deployment were outlined for cloud computing:

Infrastructure-As-A-Service (IaaS)-Provides computing hardware such as servers, network equipment, and data storage on a scalable basis in the cloud. This model is most often used for backup and recovery.

Platform -As-A-Service (PaaS)-Provides an application environment allowing users to collaborate, test, deploy and host applications in the cloud, commonly used in the development of enterprise-level software.

Software-As-A-Service (SaaS)-Provides virtual access to software. Users can log in from anywhere and have access to specific software in the cloud. Cloud based email is a commonly used.

Before deciding to move to the cloud, there are several key considerations to take into account:

1. What is the frequency of usage? Highly frequent usage may make less sense to move to the cloud. However, infrequent use is perfect for the pay-as-you-go model.

2. Do you need highly customized services? The cloud might still be a good solution, but customized services will come at a little higher price.

3. Is your business a start-up or an established, mature business? Cloud-based services lend themselves very well to start-ups. However, an established, mature business might want to keep an on-premise IT solution.

4. How does your company prefer to allocate their expenses, as capital or operating? If you prefer ongoing operating expenditures then the cloud is perfect for you.

Some form of cloud computing makes sense for most businesses. Cloud systems are often easier to manage, less expensive, more versatile, more scalable, and easier to work with and maintain.

Sources: http://www.archives.gov/records-mgmt/faqs/cloud.html

Jason Dick is a certified technical specialist with an internet marketing background. He currently writes original content containing tips for business owners on both general and technical topics. Northwest Computer Support is a one-stop IT services provider helping businesses in the Northwest manage their IT needs since 1977. They are truly a comprehensive IT solutions provider with services ranging from Green IT and SharePoint to management consulting, help desk, and network management. Click here for an overview of their entire menu of IT services.

Author: Jason Dick
Article Source: EzineArticles.com
Healing food: natural way to cure cancer

Will the Cloud Destroy Software Freedom?

In the open source movement, there are those who want software freedom and not just software that is free or costs no money. This means having software that you are free to change the code, free to distribute, and free to do about anything you want with it. That is about as free as an application or software can get. There are those in the free software movement who have attacked cloud computer. Is the cloud actually a threat to software freedom?

The concept is that if you start relying on the cloud, whether it be for storage or web applications, that eventually at some point in time two bad situations could occur. The first is that the cloud loses your data. The second is that the cloud has to compromise your privacy.

As far as the losing data standpoint, most cloud applications that are any good allow you to download that data and back it up on your own machine and devices. Anyone who uses the cloud or their desktop for applications and does not backup is foolish.

The other issue is privacy. What if the server gets hacked? What if the information on the server is share? What if the government demands the data be turned over? The freedom to be private is really up in the air when one uses the cloud. If it’s on the computer, there is some assurance of a bit more security.

One thing that does have to be realized is that if a person makes a choice to use an application in the cloud is that it is their free choice to do so. Almost every software choice is going to have good and bad sides to it. But ultimately if cloud computing does get popular it does not jeopardize free open source software. Many of the applications for the desktop work great leaving little reason to worry.

The author has recently moved home and knows how difficult it can be to purchase new blinds. With this in mind, he has set up a great website providing reviews and information on enclosed blinds and enclosed door blinds.

Author: Sean Cole
Article Source: EzineArticles.com
Advice on AdSense

Testing in the Cloud

Cloud computing is a way of computing which has the power to offer scalable and even virtualized resources as a service over the Internet. Users need not know about or possess expertise in the underlying technology or infrastructure being used in the cloud. It encompasses Infrastructure as a Service (IaaS), platform as a service (PaaS), Software as a Service (SaaS) and all recent technology innovations that rely on the Internet to satiate the computing needs of end users. The services over a cloud can be accessed via varied sources such as a web browser, while the software and data centers can lie on the servers.

This trend that Gartner reports as one of the top 10 strategic technologies might sound nebular but it’s not so hazy when we try to view its value additions with respect to IT – be it Software development, Testing or security. It is one of the best solutions to the most significant requirement in the IT industry: a means to increase capacity or add capabilities on the fly without investing in new infrastructure, training new personnel, or procuring license of new software. It’s the era of multi-core Cloud Computing. There are hundreds and thousands of users running simultaneous against thousands of CPU’s. There are many more processes active at one time. This is the kind of infrastructure and scalability that a cloud network can establish for you. Although cost is a likely benefit for small companies, the biggest benefits are the flexibility and scalability, which not only reduce barriers, but also help these companies to grow quickly.

For testing organizations, there will be both new challenges as well as opportunities. Testing the multi-layered architecture – from the application to the cloud service provider – that’s something which testers will have to become adept at. A more recent example is that – using a new cloud infrastructure such as the Google App Engine, organizations can now run their applications on Google’s infrastructure. It is so much easier to deploy applications in a cloud. One does not have to bother about the data, instead you could concentrate on building the application and its functionality.

Its effect on testing is that the end-user experience is being impacted by the cloud provider and all other third party vendors involved. With the help of cloud computing, testers can access and afford enormous amounts of computing technology & power. And that’s exactly what’s needed in testing. It helps organizations test on hundreds of devices in a more comfortable and cost effective manner. For applications running on clouds, some things to test are: network performance, server performance, database performance, software performance on the application, the way its cached in the client. The challenge of testing across all the heterogeneous components and geographical boundaries to identify bugs/problems is a huge one. The platform could be any – a mobile device or a desktop or mainframe etc. – Quality has to be the supreme consideration!

According to the market research firm IDC, spending on IT cloud services is expected to increase threefold, to $42 billion by 2012. It’s certain that over the next five years every testing vendor will try to leverage the cloud. It seems that it would lead to a new generation of testing companies. There’s no denying the fact that cloud computing is going to be the next big thing that’s going to revolutionize the way we consume service.

Minesh Upadhyaya is the Vice President of Global Testing Services. He has years of experience in Quality Assurance and providing software testing services. He has been involved in providing QA/Testing Solutions to many technically challenging projects.

Author: Minesh Upadhyaya
Article Source: EzineArticles.com
Advice on AdSense

Every Supply Chain Should Have a Cloud Computing Silver Lining

When it comes to the latest developments in software technology, logistics and transport managers are usually at the end of the queue. There are many reasons for this – and a common one is that manufacturing and ERP applications take precedent – and when those wishes were fulfilled, there was relatively little budget left over for the logisticians who were looking to make operations more efficient

However, this is now changing. The current hot technology is Internet ‘Cloud Computing’. Not only is this set to change the way we all use computer technology, at work and at home, but supply chain operations are amongst the earliest beneficiaries.

What is Cloud Computing and how is it revolutionising our business operations? And how new is it really? The concept of the Cloud has its roots in the early days of the Internet as a business tool – and we sometimes forget that those days are not so long ago.

It was in the late 90s that IBM introduced the concept of e.business – bringing the Internet to businesses and not just as a gaming and surfing tool for young people. There was a time when presentations, articles and learned papers on the subject of the Internet were not complete without a diagram of a Cloud – representing the ether where information exchange took place. During my time with IBM EMEA’s Global Services Management Consulting Group – dating back a decade – all of my presentations had at least one ‘Cloud’ appearance.

Over the last decade the Internet cloud concept has seen several developments – and finally come full circle and returned as ‘Cloud Computing’. In the interim it has seen life as web enabled technology; web enabled applications; on-Demand computing; web services; and utility computing.

The concept has developed and with the introduction of Web 2.0 technology – and recently Web 3.0 – the improvements have been rapid, leading to Software as a Service (SaaS) and finally Cloud Computing.

What is in a name? In the case of Cloud Computing, quite a lot. All the other services found difficulty gaining traction. Non-IT managers simply did not understand and IT managers were reluctant to promote a technology which might undermine their role as custodians of technology.

In fact there is no significant difference between Cloud Computing and its predecessor (in name) Software as a Service. The Cloud terminology appears to have been created by Microsoft – as a marketing term which makes the concept easier to understand (and helps people like me to recycle my old slides and diagrams!). The term has been accepted by other industry giants including Oracle and IBM and all of the major IT consultancies.

So what is different about the concept? Cloud Computing moves computing from the desk top to remote computers. Different computing devices such as personal computers, personal digital assistants, handheld devices and cell phones connect to remote computers through wired or wireless connections. Investment in licences, infrastructure maintenance and upgrades lies with the application service provider, not the user. The service is usually paid for from the operations budget – because there is no capital expenditure. This makes approval quicker and simpler.

This simple explanation shows why the Cloud is so important for supply chain management; and also why it is seeing more development and acceptance in the supply chain than in manufacturing. It also explains why budgets are not the overwhelming constraint that they used to be – the service is often paid for from an operating budget, making approval quicker and simpler.

For supply chains to operate effectively and efficiently, a real time exchange of knowledge and the ability to collaborate with external and internal partners – suppliers, customers, logistics operators – to manage events in real time is essential. However, this has never been achievable until now. The Cloud brings this capability – without capital expenditure and with costs directly related to the level of business you are conducting.

Manufacturing processes do not benefit to the same extent as supply chain processes. The ability to share real time event information with partners, while being critical in supply chains, is not usually essential in manufacturing. Also, manufacturing processes are often unique to product ranges, and frequently to individual companies.

Supply chain, and in particular logistics, processes are shared across many sectors and most product ranges. They follow the same basic principles and goals and use similar resources. While there are differences, they are not as radical as in manufacturing.

So where has Cloud Computing or Software as a Service (SaaS), been finding willing users? The first break through was with SalesForce, and the success was rapid when this sales and lead management application was moved from the desktop to the Internet. Since then CRM, Human Resource Management and email services have rapidly emigrated from the desktop to the Cloud.

What about supply chain applications? These are being developed rapidly and it is good to see that British companies are amongst world leaders. A leading example of this is Feltham UK based Deltion, http://www.deltion.co.uk – providers of CarrierNetOnline (CNO) Software as a Service.

CNO is a logistics and transport management system – available only over the Internet. Users pay on a transaction basis and only for the features they need. Transaction costs grow as the business grows; users who find that current market conditions mean less freight carried pay less until the business turns round.

CNO users include industry giants such as UPS and TDG and a recent signings include a household name food producer and one of the country’s biggest suppliers to the building trade. Operators of smaller fleets are also users – benefitting from low transaction related charges.

Logixcentral is an Internet based solution from long established Birmingham UK company, DPS International. This is a Cloud Computing version of DPS’s long established LogiX routing and scheduling solution. It has proved successful not only with logistics companies and in-house freight operators, but also with companies in the service sector running car and van based services.

Another Cloud hosted Supply Chain success story is Oxford, Uk based OmPrompt – http://www.omprompt.com. OmPrompt was founded to create 100% truly-connected trading communities, whatever the trading partners’ technical capability, providing more efficient EDI solutions and automating the manual processes or message flows. OmPrompt distinguishes itself with its ability to rapidly on board trading partners to trading communities.

So is the technology Cloud here to stay? Industry analysts Gartner believe so. In a survey published in December 2008 they reported that nearly 90% of organisations surveyed expect to maintain or grow their usage of SaaS. The firms cited cost-effectiveness along with ease and speed of deployment as primary reasons for SaaS adoption.

More than one-third of respondents indicated that they had plans to move from on-premises to SaaS. The key drivers included total cost of ownership, and unmet performance expectations with on-premises solutions, in addition to changes in sourcing strategy.

What does the Cloud hold for supply chain applications? I believe that Cloud Computing offers managers throughout the supply chain an opportunity to catch up with the advances in technology which other parts of business have enjoyed for many years: at lower cost; without capital expenditure; avoiding business disruption; and without significant consulting and implementation fees. We are entering a new age of supply chain and logistics technology – and this Cloud has a silver lining.

About the Author.

Denis O’Sullivan is a director of specialist management consulting company, NetworkedWorld and specialises in IT technology within the supply chain, in particular Cloud Computing or Software as a Service.

A fellow of the Chartered Institute of Logistics and Transport in the UK (http://www.ciltuk.org.uk/), Denis chairs the Institute’s Supply Chain Technology Integration Forum.

He is a former CEO of Swiss based shipping industry company Transcontainer Services, and European Director of ITEL Container Corporation. Before founding NetworkedWorld, Denis was Supply Chain Industry Executive EMEA for IBM Global Solutions.

He has also worked in a strategic role for many years with DPS International – http://www.dpslogix.co.uk/

Author: Denis O’Sullivan
Article Source: EzineArticles.com
Import duty tariff

Top 10 Concepts That Every Software Engineer Should Know

The future of software development is about good craftsmen. With infrastructure like Amazon Web Services and an abundance of basic libraries, it no longer takes a village to build a good piece of software.

These days, a couple of engineers who know what they are doing can deliver complete systems. In this post, we discuss the top 10 concepts software engineers should know to achieve that.
A successful software engineer knows and uses design patterns, actively refactors code, writes unit tests and religiously seeks simplicity. Beyond the basic methods, there are concepts that good software engineers know about. These transcend programming languages and projects – they are not design patterns, but rather broad areas that you need to be familiar with. The top 10 concepts are:

1. Interfaces
2. Conventions and Templates
3. Layering
4. Algorithmic Complexity
5. Hashing
6. Caching
7. Concurrency
8. Cloud Computing
9. Security
10. Relational Databases

1.INTERFACE:

The most important concept in software is interface. Any good software is a model of a real (or imaginary) system. Understanding how to model the problem in terms of correct and simple interfaces is crucial. Lots of systems suffer from the extremes: clumped, lengthy code with little abstractions, or an overly designed system with unnecessary complexity and unused code.

Among the many books, Agile Programming by Dr Robert Martin stands out because of focus on modeling correct interfaces.

2.CONVENTIONS AND TEMPLATES:

Naming conventions and basic templates are the most overlooked software patterns, yet probably the most powerful.

Naming conventions enable software automation. For example, Java Beans framework is based on a simple naming convention for getters and setters. And canonical URLs in del.icio.us: del.icio.us/tag/software take the user to the page that has all items tagged software.

Many social software utilise naming conventions in a similar way. For example, if your user name is johnsmith then likely your avatar is johnsmith.jpg and your rss feed is johnsmith.xml.

Naming conventions are also used in testing, for example JUnit automatically recognizes all the methods in the class that start with prefix test.The templates are not C++ or Java language constructs. We’re talking about template files that contain variables and then allow binding of objects, resolution, and rendering the result for the client.

3.LAYERING:

Layering is probably the simplest way to discuss software architecture. It first got serious attention when John Lakos published his book about Large-scale C++ systems. Lakos argued that software consists of layers. The book introduced the concept of layering. The method is this. For each software component, count the number of other components it relies on. That is the metric of how complex the component is.

Lakos contended a good software follows the shape of a pyramid; i.e., there’s a progressive increase in the cumulative complexity of each component, but not in the immediate complexity. Put differently, a good software system consists of small, reusable building blocks, each carrying its own responsibility. In a good system, no cyclic dependencies between components are present and the whole system is a stack of layers of functionality, forming a pyramid.

Lakos’s work was a precursor to many developments in software engineering, most notably Refactoring. The idea behind refactoring is continuously sculpting the software to ensure it’is structurally sound and flexible. Another major contribution was by Dr Robert Martin from Object Mentor, who wrote about dependencies and acyclic architectures

Among tools that help engineers deal with system architecture are Structure 101 developed by Headway software, and SA4J developed by my former company, Information Laboratory, and now available from IBM.

4.ALGORITHMIC COMPLEXITY:

There are just a handful of things engineers must know about algorithmic complexity. First is big O notation. If something takes O(n) it’s linear in the size of data. O(n^2) is quadratic. Using this notation, you should know that search through a list is O(n) and binary search (through a sorted list) is log(n). And sorting of n items would take n*log(n) time.

Your code should (almost) never have multiple nested loops (a loop inside a loop inside a loop). Most of the code written today should use Hashtables, simple lists and singly nested loops.Due to abundance of excellent libraries, we are not as focused on efficiency these days. That’s fine, as tuning can happen later on, after you get the design right.Elegant algorithms and performance is something you shouldn’t ignore. Writing compact and readable code helps ensure your algorithms are clean and simple.

5.HASHING:

The idea behind hashing is fast access to data. If the data is stored sequentially, the time to find the item is proportional to the size of the list. For each element, a hash function calculates a number, which is used as an index into the table. Given a good hash function that uniformly spreads data along the table, the look-up time is constant. Perfecting hashing is difficult and to deal with that hashtable implementations support collision resolution.

Beyond the basic storage of data, hashes are also important in distributed systems. The so-called uniform hash is used to evenly allocate data among computers in a cloud database. A flavor of this technique is part of Google’s indexing service; each URL is hashed to particular computer. Memcached similarly uses a hash function.Hash functions can be complex and sophisticated, but modern libraries have good defaults. The important thing is how hashes work and how to tune them for maximum performance benefit.

6.CACHING:

No modern web system runs without a cache, which is an in-memory store that holds a subset of information typically stored in the database. The need for cache comes from the fact that generating results based on the database is costly. For example, if you have a website that lists books that were popular last week, you’d want to compute this information once and place it into cache. User requests fetch data from the cache instead of hitting the database and regenerating the same information.

Caching comes with a cost. Only some subsets of information can be stored in memory. The most common data pruning strategy is to evict items that are least recently used (LRU). The prunning needs to be efficient, not to slow down the application.A lot of modern web applications, including Facebook, rely on a distributed caching system called Memcached, developed by Brad Firzpatrick when working on LiveJournal. The idea was to create a caching system that utilises spare memory capacity on the network. Today, there are Memcached libraries for many popular languages, including Java and PHP.

7.CONCURRENCY:

Concurrency is one topic engineers notoriously get wrong, and understandibly so, because the brain does juggle many things at a time and in schools linear thinking is emphasized. Yet concurrency is important in any modern system.Concurrency is about parallelism, but inside the application. Most modern languages have an in-built concept of concurrency; in Java, it’s implemented using Threads.

A classic concurrency example is the producer/consumer, where the producer generates data or tasks, and places it for worker threads to consume and execute. The complexity in concurrency programming stems from the fact Threads often needs to operate on the common data. Each Thread has its own sequence of execution, but accesses common data. One of the most sophisticated concurrency libraries has been developed by Doug Lea and is now part of core Java.

8.CLOUD COMPUTING:

In our recent post Reaching For The Sky Through Compute Clouds we talked about how commodity cloud computing is changing the way we deliver large-scale web applications. Massively parallel, cheap cloud computing reduces both costs and time to market.Cloud computing grew out of parallel computing, a concept that many problems can be solved faster by running the computations in parallel.

After parallel algorithms came grid computing, which ran parallel computations on idle desktops. One of the first examples was SETI@home project out of Berkley, which used spare CPU cycles to crunch data coming from space. Grid computing is widely adopted by financial companies, which run massive risk calculations. The concept of under-utilized resources, together with the rise of J2EE platform, gave rise to the precursor of cloud computing: application server virtualization. The idea was to run applications on demand and change what is available depending on the time of day and user activity.

Today’s most vivid example of cloud computing is Amazon Web Services, a package available via API. Amazon’s offering includes a cloud service (EC2), a database for storing and serving large media files (S3), an indexing service (SimpleDB), and the Queue service (SQS). These first blocks already empower an unprecedented way of doing large-scale computing, and surely the best is yet to come.

9.SECURITY:

With the rise of hacking and data sensitivity, the security is paramount. Security is a broad topic that includes authentication, authorization, and information transmission.Authentication is about verifying user identity. A typical website prompts for a password. The authentication typically happens over SSL (secure socket layer), a way to transmit encrypted information over HTTP. Authorization is about permissions and is important in corporate systems, particularly those that define workflows. The recently developed OAuth protocol helps web services to enable users to open access to their private information. This is how Flickr permits access to individual photos or data sets.

Another security area is network protection. This concerns operating systems, configuration and monitoring to thwart hackers. Not only network is vulnerable, any piece of software is. Firefox browser, marketed as the most secure, has to patch the code continuously. To write secure code for your system requires understanding specifics and potential problems.

10.RELATIONAL DATABASES:

Relational Databases have recently been getting a bad name because they cannot scale well to support massive web services. Yet this was one of the most fundamental achievements in computing that has carried us for two decades and will remain for a long time. Relational databases are excellent for order management systems, corporate databases and P&L data.

At the core of the relational database is the concept of representing information in records. Each record is added to a table, which defines the type of information. The database offers a way to search the records using a query language, nowadays SQL. The database offers a way to correlate information from multiple tables.The technique of data normalization is about correct ways of partitioning the data among tables to minimize data redundancy and maximize the speed of retrieval.

Author: Krishnam Raju
Article Source: EzineArticles.com
Creditcard Currency Conversion Fee

Cloud Computing – Is This the Way of the Future?

Cloud Computing is slowing becoming a buzz-word in the Software Industry. So much has been said about the power of cloud computing and its ability to revolutionize the way we do business.

So what exactly is cloud computing? A very simplistic explanation would be internet based use of technology. Here the term cloud personifies internet as a medium to communicate and collaborate. This would allow companies and consumers to access applications over a connected network without the hassle of installation and maintenance.

Most people jump to conclusions that cloud computing is same as SaaS (Software as a Service Model). However SaaS is only a part of this larger concept. Cloud Computing includes three core aspects. These are Infrastructure as a Service (IaaS), SaaS and Internet based development (Platform as a Service).

IaaS typically provides the networking infrastructure and other hardware support to software developers and vendors. They can use these IaaS services to host their applications on the internet to their end users. This is a concept in the nascent stages, yet providers like Amazon, provide such computing services to their customers.

SaaS is a concept which has been in use for some time now. Vendors like Salesforce.com, Google and NetSuite use it in a big way, and it is slowly gaining popularity as an effective business model. The basic idea behind this concept is that customers can access software applications, on demand over the internet via a Web Browser. In this model, customers can subscribe to the software, instead of purchasing it. Hence they can pay for the period for which they use the software, most commonly on a pay per month basis.

PaaS is a concept where software developers can develop and host new software via the internet, without having to purchase new hardware or software. Microsoft Azure and Google Apps, are some of the popular PaaS providers.

Seeing a rise in popularity of this concept, major software vendors like SAP, Oracle, Microsoft and IBM, each are working on devising key strategies for the same. Currently vendors like SAP and Microsoft have a combined share of thirteen percent in the Indian SaaS market, with Webex and Salesforce leading the roost. There is a general trend of SMEs adopting much faster to a model like this as compared to larger corporations.

It seems traditional on-premise application providers have shown some resent toward this increasing buzz and adoption towards the cloud hype. In fact Oracle CEO Larry Ellison states that the IT industry is more fashion driven and begins to associate everything to a cloud, in a sarcastic statement to the press. Yet, Oracle has its own strategy to counter cloud computing. Its CRM on-demand tool is slowly gaining popularity among the industry.

SAP is not far behind when it comes to cloud adoption. It has taken a hybrid approach to integrate the on-premise and on-demand models to ensure unison and integrity among enterprise applications. SAP BusinessObjects is an on-demand solution to cater to the diverse needs of small and medium sized enterprises.

There are still some risk factors and apprehensions to a complete shift to the cloud. In fact, SAP’s former CEO Leo Apotheker had said, that a large company cannot put everything on the cloud, as the cloud would collapse. John Wookey who is now in charge of SAP’s on-demand strategy, is working on new strategies to counter the hype of cloud computing.

How will businesses, software companies adapt to the changing trends in the software industry is something to look for in the near future. But from the looks of it, cloud computing is definitely something that is here to stay.

More insights on the latest trends in the software industry:
http://accentconsulting.blogspot.com/
http://marketing-insight-blog.blogspot.com/

Author: Lawrence Gilbert
Article Source: EzineArticles.com
Low-volume PCB maker

Safety and Security in Cloud Computing – Is it Safe to Use?

Paging all expensive business software applications, you can now move over or step aside because there is a new bull on the highway and it is known as cloud computing. This reinvented technology promises to radically change the way you view business computing. It collected the best of computer technologies available to mankind, bundled it with business application software, and introduced a scalable software as a service as the core of cloud computing.

Now, you might ask what kind of business application software does cloud computing offer. Well, what application software do you have in mind? Cloud computing technology has a wide array of scalable business application software that will cater to all your business needs. From customer relationship management, accounting system, inventory control and relationship database management system, to regular on-site software applications like spreadsheets, word processing applications, slides, graphic editing and much more.

You might again say that you use different business application software on your place of business and you are worried that the applications floating amidst the cloud may not be able to read the format of your old files. This is actually where the magic comes in because there are several generic software applications that can actually open the old files. On the other hand, the one reason why cloud computing technology is becoming popular is because of its ability to integrate and call up the business applications that you have really been familiar with to open the old files you have stored on your hard disk for more than ten years.

One of the best services that cloud computing technology offers is customer relationship management. To date, this type of software has been helping managers keep track of customers’ information, their history, orders and order dates, delivery, problems encountered and resolved, who handled the clients concerns, and a whole lot of critical information that a business really needs. Try to imagine this type of software being introduced by cloud computing technology as a service, and you will definitely stare at the monitor screen with your mouth agape.

You might not believe it but Customer Relationship Management as a web based application service exists on the cloud and you would now be able to use this application without any hassles you would normally encounter if you install this software in your office. Your customer’s data and all other vital information will be kept on the cloud’s secure database system accessible only to you.

There are many business application software that cloud computing offers and a lot more are being developed right now. One thing is unquestionably sure. Cloud computing technology will start a trend that will be in place for decades to come. So enjoy the business application software you can find right now in the clouds and let your trade profit from it.

Suzie has been writing articles on interesting topics including relationships and home decoration ideas. Her new interests are in pendant lights such as Outdoor Pendant Lighting and Pendant Track Light.

Author: Suzie Sanchez
Article Source: EzineArticles.com
Benefits of electric pressure cooker

Computing With Cloud Software

The computing features of the cloud software are considered as one of best developments in the field. As the innovations like cloud software get introduced in the market, there is the gradual shift from applications with pure on-premises orientation. These days, many companies (big and small) and consumers are using cloud software as part of their data storage systems and applications. While the software is increasingly gaining attention and usage, many are still concerned whether it’s safe to use it.

The main concern for people now is whether the technologies of the software are in fact secured. For most IT managers, worrying about such is a normal turn of events. There is great risk in changing systems and software. Many companies have been victims of cybercrimes worldwide. In the recent survey conducted under CSI Computer Crime and Security, results reported that companies which have been victims of cybercrime lost around $300,000 or more.

Placing all your trust and letting cloud computing manage the system may be asking too much. However changing “faith” is not entirely part of this concern. The more important thing is to look at the facts. The data system and applications featured in cloud are very secure. Many have already testified to the reliability of cloud as part of a data storage system. In more ways than one, cloud has several advantages in the security department. As indicated by NIST, cloud’s edge over the other is as follows:

It can help provide more protection for internal service data. The data’s chances of getting exposed are lessened.

Companies can take advantage of the software’s automated security management
It has the ability to recover data.

Providers implement the highest form of quality testing so you don’t have to worry about performance. Start using cloud today and get a taste of its benefits.

Paul Walsh is writer of many websites and he enjoys writing on wide range of topics such as Cloud Security and Cloud Security. You may visit for more details.

Author: Paul M Walsh
Article Source: EzineArticles.com
Pressure cooker