Wednesday, November 21, 2012

Cloud Computing

What is cloud computing?

Source:, Wikipedia,,,,, Ian Foster, Yong Zhao, Ioan Raicu, Shiyong Lu,

Currently companies developing software are forced to maintain their own hardware and software to develop and host the application leading to huge upfront costs. In a cloud scenario, computing resources (hardware and software) are delivered as a service over a network (typically the Internet), which makes it possible for companies to contemplate which computing assets are suitable to be sourced in a cloud model and which ones will continue to be delivered in the traditional model. This approach saves costs, and increases efficiency.

Cloud Computing is a large-scale distributed computing paradigm that is driven by economies of scale, in which a pool of abstracted, virtualized, dynamically-scalable, managed computing power, storage, platforms, and services are delivered on demand to external customers over the Internet.

1. IAAS: Infrastructure as a Service

2. PAAS: Platform as a Service

3. SAAS: Software as a Service

4. STaaS: Storage as a Service

5. SECaaS: Security as a Service

6. DaaS: Data as a Service

7. DBSaaS: DataBase as a Service

8. TEaaS: Test Environment as a Service

1. IAAS: Infrastructure as a Service: Infrastructure as a Service is a model in which an organization outsources the equipment used to support operations, including storage, hardware, servers and networking components. The service provider owns the equipment and is responsible for housing, running and maintaining it. The client typically pays on a per-use basis. This is sometimes also called Hardware as a Service (HaaS).

Example: Amazon, Microsoft, VMWare, Rackspace, Red Hat, etc.

2. PAAS: Platform as a Service: Platform as a Service (PaaS) is a way to rent hardware, operating systems, storage and network capacity over the Internet. The service delivery model allows the customer to rent virtualized servers and associated services for running existing applications or developing and testing new ones.

Example: Google App Engine, Microsoft Azure, Saleforce’s, the Salesforce-owned Heroku, and Engine Yard.

3. SaaS: Software as a Service: Allows software applications to be available as a service over the internet. Any application hosted on a remote server that can be accessed over the Internet is considered a SaaS.

Example,, Gmail.

How are IAAS, SAAS and PAAS Related?

These layers of cloud computing sit on top of one another. Infrastructure sits at the bottom, Platform in the middle and Software on top. Other “soft” layers can be added on top of these layers as well, with elements like cost and security extending the size and flexibility of the cloud.


How is Cloud different from Grid Computing, and Utility Computing?

 Cluster Computing: clustering is the use of multiple computers, typically PCs or UNIX workstations, multiple storage devices, and redundant interconnections, to form what appears to users as a single highly available system. Cluster computing can be used for load balancing as well as for high availability of services.

Grid Computing: Grid computing (or the use of a computational grid) is applying the resources of many computers in a network to a single problem at the same time - usually to a scientific or technical problem that requires a great number of computer processing cycles or access to large amounts of data. A well-known example of grid computing in the public domain is the on-going SETI (Search for Extra-terrestrial Intelligence) @Home project in which thousands of people are sharing the unused processor cycles of their PCs in the vast search for signs of "rational" signals from outer space.

Utility Computing: it is a business model in which computing resources, such as computation and storage, are packaged as metered services similar to a physical public utility, such as electricity and public switched telephone network. Utility computing is typically implemented using other computing infrastructure (e.g. Grids) with additional accounting and monitoring services. A Cloud infrastructure can be utilized internally by a company or exposed to the public as utility computing.

Grids, Clouds, etc.: How they compare with one another?

Benefits and Risks of Cloud Computing


1. On-demand; no up-front costs

2. Workforce mobility – anybody can work from anywhere

3. No need for license costs; pay as you go.


1. User has no control on the software upkeep, and is entirely dependent on the Cloud service provider for troubleshooting and managing.

2. Privacy and confidentiality of data.

Thursday, November 08, 2012

SAP Functional and Technical

SAP Notes, Support Pack, Patches

Courtsey: SAP Press

SAP provides several methods to correct errors that have occurred in your SAP system - Support Packs and SAP Notes. Support Packages correct all errors that have been identified within a specific time period in a system, whereas SAP Notes correct individual errors as they occur.

Main factors causing difficulties in Support Package Implementation are the:

• Downtime

• The time and effort necessary for testing, and

• Code freeze.

SAP Notes

If a specific problem occurs with the SAP ERP software and this problem is corrected, details of the correction are published in an SAP Note. The correction is also included in the next Support Package.

If the problem is particularly urgent, you may not be able to wait for the Support Package and will have to manually make the correction with the help of an SAP Note. SAP provides the SAP Note Assistant to enable customers to import SAP Notes. This tool considerably reduces the amount of manual work required to implement the Note and make modification adjustments later on.

Particularly important Notes—such as those about faults with serious consequences including system downtime and data inconsistencies— are classified as HotNews and are published on the SAP Service Marketplace.

SAP HotNews items are SAP customer Notes with Priority 1 (very high). These Notes contain the solutions to problems that could cause a system breakdown or data loss in the SAP system.

Support Pack

A Support Package contains a collection of error corrections. Support Packages can be imported only in their entirety and only in the specified order. Every correction in a Support Package is documented in a Note.

When a Support Package is imported, the system automatically checks whether you have previously implemented individual corrections from this Support Package in the form of Notes.

a. The system checks whether corrections that you have previously implemented via a Note have been overwritten by a Support Package that did not contain these corrections.

b. The system checks whether you have previously implemented individual corrections from the Support Package into your system via Notes.

Support packs are available for ABAP as well as JAVA. SAP provides a range of tools that make it easy and convenient for you to obtain Support Packages and import them automatically.

In contrast to ABAP, a Support Package does not just contain the changed objects, but all objects of a software component. Therefore, in Java, you only have to import the last Support Package; in ABAP, you have to import all predecessors in the correct sequence. This means that Java Support Packages are cumulative. The common file format is SCA, which is implemented using the Java Support Package Manager (JSPM).


Fixes are full deliveries of a development component. In other words, they contain all objects of this particular development component. A fix is the smallest delivery unit of corrections and usually solves one specific problem. Fixes are provided only in emergency cases if an urgent preliminary correction is required before the next Support Package is available.


A patch is a modified Support Package. It contains the last regular Support Package and also all important and generally valid fixes that have been compiled since the release of the last Support Package. Just like a Support Package, a patch is a full delivery of a complete software component. The common file format is SCA. Patches are created by SAP on request and are published in the SAP Service Marketplace.

Displaying progress bar in VBA using a form


1.Open a new workbook in Excel.

2.In Microsoft Office Excel 2003 and in earlier versions of Excel, click Tools, point to Macro, and then click Visual Basic Editor.

In Microsoft Office Excel 2007, click Visual Basic in the Code group on the Developer tab.

Note To display the Developer tab in the Ribbon, follow these steps:

a.Start Excel 2007, click the Microsoft Office Button, and then click Excel Options.

b.In the Excel Options dialog box, click Popular, and then click to select the Show Developer tab in the Ribbon check box.

3.On the Insert menu, click UserForm.

4.Draw a Label control on the user form.

5.Change the following properties of the Label control to the following values:

Property Value


Caption Now updating. Please wait...

Note If the Properties window is not visible, click Properties Window on the View menu.

6.Draw a Frame control on the user form.

7.Change the following properties of the Frame control to the following values:

Property Value

Name FrameProgress

8.Draw a Label control on the Frame control.

9.Change the following properties of the Label control to the following values:

Property Value


Name LabelProgress

BackColor &H000000FF&

SpecialEffect fmSpecialEffectRaised

Type the Macro Code

1.Double-click the user form to open the Code window for the user form.

2.In the module, type the following code for the UserForm_Activate event:

Private Sub UserForm_Activate()

' Set the width of the progress bar to 0.

UserForm1.LabelProgress.Width = 0

' Call the main subroutine.

Call Main

End Sub

3.On the Insert menu, click Module.

4.In the Code window for the module, type the following code:

Sub ShowUserForm()


End Sub

Sub Main()

Dim Counter As Integer

Dim RowMax As Integer, ColMax As Integer

Dim r As Integer, c As Integer

Dim PctDone As Single

Application.ScreenUpdating = False

' Initialize variables.

Counter = 1

RowMax = 100

ColMax = 25

' Loop through cells.

For r = 1 To RowMax

For c = 1 To ColMax

'Put a random number in a cell

Cells(r, c) = Int(Rnd * 1000)   /////remove/comment this if you don't want to insert cols/rows....

Counter = Counter + 1

Next c

' Update the percentage completed.

PctDone = Counter / (RowMax * ColMax)

' Call subroutine that updates the progress bar.

UpdateProgressBar PctDone

Next r

' The task is finished, so unload the UserForm.

Unload UserForm1

End Sub

Sub UpdateProgressBar(PctDone As Single)

With UserForm1

' Update the Caption property of the Frame control.

.FrameProgress.Caption = Format(PctDone, "0%")

' Widen the Label control.

.LabelProgress.Width = PctDone * _

(.FrameProgress.Width - 10)

End With

' The DoEvents allows the UserForm to update.


End Sub

5.Return to Excel.

6.In Excel 2003 and in earlier versions of Excel, point to Macro on the Tools menu, and then click Macros.

In Excel 2007, click Macros in the Code group on the Developer tab.

7.In the Macro dialog box, click to select ShowUserForm, and then click Run.

Rack-mount and Blade Servers

Source - Wikipedia and

A blade server is a stripped-down server computer with a modular design optimized to minimize the use of physical space and energy. Whereas a standard rack-mount server can function with (at least) a power cord and network cable, blade servers have many components removed to save space, minimize power consumption and other considerations, while still having all the functional components to be considered a computer.

A rack server, also called a rack-mounted server, is a computer dedicated to use as a server and designed to be installed in a framework called a rack. The rack contains multiple mounting slots called bays, each designed to hold a hardware unit secured in place with screws. A rack server has a low-profile enclosure, in contrast to a tower server, which is built into an upright, standalone cabinet.

Friday, September 28, 2012

What are the various kinds of Servers (Web Servers, Application Servers, etc.)? [Source, author Paul Danckaert] / Difference between a Web Server and Application Server.

The servers involved in handling and processing a user's request break down into a few basic types, each of which may have one or more tasks it solves. This flexibility gives developers a great deal of power over how applications will be created and deployed, but also leads to confusion over what server is able to, or should, perform a specific task.

Starting at the basic level, a user is typically submitting a request to a system through a web browser. (We are conveniently ignoring all other types of clients (RMI, CORBA, COM/DCOM, Custom, etc..) for the time being for purposes of clarity.) The web request must be received by a Web Server (otherwise known as an HTTP Server) of some sort. This web server must handle standard HTTP requests and responses, typically returning HTML to the calling user. Code that executes within the server environment may be CGI driven, Servlets, ASP, or some other server-side programming language, but the end result is that the web server will pass back HTML to the user.

The web server may need to execute an application in response to the users request. It may be generating a list of news items, or handling a form submission to a guest book. If the server application is written as a Java Servlet, it will need a place to execute, and this place is typically called a Servlet Engine. Depending on the web server, this engine may be internal, external, or a completely different product. This engine is continually running, unlike a traditional CGI environment where a CGI script is started upon each request to the server. This persistance gives a servlet connection and thread pooling, as well as an easy way to maintain state between each HTTP request. JSP pages are usually tied in with the servlet engine, and would execute within the same space/application as the servlets.

There are many products that handle the web serving and the servlet engine in different manners. Netscape/iPlanet Enterprise Server builds the servlet engine directly into the web server and runs within the same process space. Apache requires that a servlet engine run in an external process, and will communicate to the engine via TCP/IP sockets. Other servers, such as MS IIS don't officially support servlets, and require add-on products to add that capability.

When you move on to Enterprise JavaBeans (and other J2EE components like JMS and CORBA) you move into the application server space. An Application Server is any server that supplies additional functionality related to enterprise computing -- for instance, load balancing, database access classes, transaction processing, messaging, and so on.

EJB Application Servers provide an EJB container, which is the environment that beans will execute in, and this container will manage transactions, thread pools, and other issues as necessary. These application servers are usually stand-alone products, and developers would tie their servlets/JSP pages to the EJB components via remote object access APIs. Depending on the application server, programmers may use CORBA or RMI to talk to their beans, but the baseline standard is to use JNDI to locate and create EJB references as necessary.

Now, one thing that confuses the issue is that many application server providers include some or all of these components in their product. If you look at WebLogic ( you will find that WebLogic contains a web server, servlet engine, JSP processor, JMS facility, as well as an EJB container. Theoretically a product like this could be used to handle all aspects of site development. In practice, you would most likely use this type of product to manage/serve EJB instances, while dedicated web servers handle the specific HTTP requests.

Types of tests to be included in a System Test (source Wikipedia)

1. Graphical user interface testing
2. Usability testing
3. Software performance testing
4. Compatibility testing
5. Exception handling
6. Load testing
7. Volume testing
8. Stress testing
9. Security testing
10. Scalability testing
11. Sanity testing
12. Smoke testing
13. Exploratory testing
14. Ad hoc testing
15. Regression testing
16. Installation testing
17. Maintenance testing
18. Recovery testing and failover testing.
19. Accessibility testing, including compliance with certain compliance needed for the disabled.