Tuesday, March 3, 2009

Corba Made Simple

Writen by Asif Khan R

The most important part of knowing CORBA is, you should know the full form of CORBA, that is Common Object Request Broker Architecture. You dont even have to necessarily understand this full form, if you are only planning to see where it fits in a software solution.

To understand CORBA, let us start with our simple program. Remember the functions which we would have used in our first C program. One such function that every one is familiar is part of the famous "Hello World" Program. The function we used was the 'printf' function which takes in a "Hello World" as parameter and does some task of outputting it on to a console.

printf("Hello World");

The signature of this function as defined in one of the headers would be

void printf(char* p_strOutput);

Now assume that we want to output this "Hello World" onto another machines console instead of your own machine. Let us see one way to do this.

We could use some sort of mechanisms like RPC(Remote Procedure Call). That is we make this function/procedure a remote procedure, that can be invoked remotely. We will prefix it with RPC and call this function

void RPC_printf(char* p_strOutputFromRemoteMachine);

Now basically we have defined this function and will henceforth call this as an interface. Once we have defined this interface, we need to implement this interface so that it prints onto the console what ever is passed on to the 'p_strOutputFromRemoteMachine' parameter. We can as well assume that the implementation of this 'RPC_printf' functions is the same as the one used by the normal printf function. Now one question that would come up in mind is. We have jsut copied the same implementation of the function 'printf' and renamed it by giving a prefix 'RPC_'. How will this work remotely? Once we answer this question, we can as well understand what is RPC, and can then go ahead to understand what is CORBA in its basic structure.

First and foremost, the C function printf cannot be accessed across the process or across the machine boundary. Both of the caller, that is our Hello World program and the implementation of the printf function has to be on the same machine and within the same process. But our interface RPC_printf can be accessed across processes and machine boundaries. How do we do that? Once we have created the interface RPC_printf. we now generate some helper methods that will help us put this to the outside world. We could use some tool to generate what is known as the stub/skeleton in CORBA terminology. The stub is what is used on the client side. On the client side, the client will make a call RPC_printf and to the user of this method on the client, it will just be that he has made a call similiar to the printf statement. But since it is a stub onto which the call is made, the stub will take care of passing the information to the relevant skeleton on the other process which can possibly lie on the other machine. The task of identifying and sending it to the remote server machine is done by the stub on the client side.

Now the information has gone to the server side or the server skeleton. It is the reponsbility of the server skeleton to do the task that is required of the function RPC_printf and return back. The skeleton of the server side now delegates it to our implementation of RPC_printf, which can be just the copy of the implementation of the normal printf fucntion. Once this function is completed, the skeleton on the server side will pass information back to the client stub to indicate that he has completed the task sucessfully.

If we have understood the above scenario, then we have already understood RPC. But RPC has some limitations. Let us examine them. Most of the RPC will always work only on the same platforms and with the same set of language interfaces. The C style RPC on solaris will not necessarily work with the C style RPC on windows. Moreover, it could also be tied to a specific language and also a specific network protocols. We cannot call this C style interface from Java(It will give us compiler errors in the first step itself). CORBA indeed solves these 3 problems of platform, operating and network dependencies for a RPC mechanism.

Let us examine how the problems are solved by CORBA. To solve language independence, the interface RPC_printf now renamed as 'CORBA_printf' will use its own proprietary language which is defined by the IDL constructs. Using IDL constructs we can construct a CORBA IDL interface. The CORBA IDL constructs defines a type called string. This type can be mapped to char* of a C function or string class of a Java function. And lo, we have solved the problem of language dependency. Now who does this mapping from IDL to a specific language? This is done by the IDL compiler. For each of the language where we want to use CORBA, we will have to use the IDL compiler to generate equivalent interfaces for our language. Now the language problem is solved. What about the platform and network dependency? CORBA solves this, by using specific protocols which have to be implemented by some body called an ORB vendor. CORBA defines something called, as an IIOP which works on TCP/IP. Since this is available with all the Opearting System, we have in effect solved the Operating System and Network dependency. With this CORBA has solved all our problems of language/platform/network dependency. Now what we typically come across as ORB is nothing, but a service or program which does all this stuff for us.

Two other RPC mechanisms, that should be mentioned is COM/DCOM and RMI. As we saw earlier, there are some limitations. COM/DCOM is popular among the windows programmers. But the main problem with this is, this cannot be used with Unix like machines. With Java as a platform independent solution, we can solve this problem of being dependent on Operating System platform by using RMI(Remote Method Invocation). But it fails to solve the problem related to different language. All RMI calls have to be made and written in Java only. This may not be a problem for fresh developement. But if we have legacy systems, we cannot overwrite everything from scratch and move all our huge code base, say for example from 'C' language to 'Java' language. The following table shows this.

'Mechanism'     'Language'      'Operating System'  'COM/DCOM'      'Yes'           'No'  'RMI'           'No'            'Yes'  'CORBA'         'Yes'           'Yes'

Now we can write our function in any language, publish its equivalent IDL, implement the IDL interface. Once this is done, then we can have this function being invoked by any langauge, across any Operating System.

i.e Our 'CORBA_printf' can now be written in C language and implemented on solaris Operating System and then we can have this method being called by a Java client from a windows Operating System.

Asif Khan R
A developer with 6 years of experience with different distributed technologies.

Monday, March 2, 2009

Large File Transfers

Writen by Alison Cole

One limitation of using e-mail to transfer files is that the amount of data that can be transferred is limited. The largest amount of data that can be transferred through e-mail ranges from ten to twenty-five megabytes. However, there are instances where larger data, which can reach up to two gigabytes, needs to be transferred. A way to remedy this is to use the File Transfer Protocol to transfer files of this size.

To facilitate such a large transfer of data, software has been developed. This individual who is receiving the transfer does not need to have the software. All you need is to go through the usual process of transferring files as soon as you have installed the added software for large file transfers. However, it is not possible to send large amounts of data to multiple recipients; this is a security measure designed to prevent spammers from using such software to send large amounts of junk mail to people.

To ensure the quality of the data being transferred, the software that is installed usually provides two quality checks to ensure that the data is intact and is not corrupted. The first check involves the TCP/IP transferring the file across the Internet into small pieces called packets, which are subsequently reassembled into the original file on your recipient's desktop computer. This process also has a built-in checking mechanism that ensures that the packets that have been sent are identical to the original file. After this, the TCP/IP then ensures that the same amount of data has been transferred and received. These quality checks ensure that the file transferred or received is exactly the same as the file that you have just sent.

With the problem of large data transfers and securing such transfers slowly being overcome, the transfer of large amounts of data in the near future can be expected to be more reliable, secure, effective, and cost-efficient.

File Transfer provides detailed information on File Transfer, File Transfer Protocols, Secure File Transfers, Large File Transfers and more. File Transfer is affiliated with File Sharing Programs.

Microsoft Excel

Writen by Michael Colucci

Microsoft Excel is a popular spreadsheet program that was developed by Microsoft. It is designed for computers that use the Windows operating system, and it can also be used on computers that use Mac OS as well. It has an easy to use interface with a number of tools that can make creating a spreadsheet fast and simple. This combined with a powerful marketing campaign has made Excel one of the most popular software programs in the world. Excel is typically bundled in the Microsoft Office package of programs.

Excel is not the first spreadsheet program to be produced by Microsoft. A spreadsheet program called Multiplan was first released by the company in 1982, but it eventually lost market share due to the release of Lotus 1-2-3. Because of this, Microsoft decided to create a spreadsheet program that could effectively compete against the dominance of Lotus. The very first version of Excel was introduced in 1985, and was available on the Mac. The first version for Windows would be released two years later. Because Lotus didn't bring their spreadsheet program to Windows quickly enough, Excel begin to gain a larger share of the market. By 1988 Excel had surpassed 1-2-3, and it is one of the factors behind the success of Microsoft as a software company.

The latest version of the software is Excel 11, and it is part of the Microsoft Office 2003 bundle. An Excel file will come in the form of .xls. A number of changes can be made to the interface of the program, but the GUI will always be composed of rows and cells. Information can be placed in cells which will have an effect on the data that may be present in other cells. In addition to this, Excel gives the user a large amount of control over the look of cells and the information that is placed in them. Both Microsoft Word and PowerPoint were designed to conform to Excel.

The introduction of Visual Basic with Excel allowed a number of tasks to be automated. Since 1993, Visual Basic has become an integral part of Excel, along with the introduction of the integrated development environment. However, the automated properties of Excel with Visual Basic has caused a number of macro viruses to be created, though many of them are now blocked by standard antivirus programs. Microsoft also allows users to disable the use of macros if they choose to, and this has largely eliminated the problem.

While Microsoft Excel was not well known during the late 1980s, it has now become the most widely spreadsheet software, though it is facing competition from a number of companies, most notably Google. Despite this, Microsoft has made a name for itself with the release of Excel, and next to Windows, it is one of the most well known software packages in the world. It has excellent calculation tools, and it can effectively be used for graphing as well. However, the software wouldn't have the dominance that it has today if it hadn't been for Multiplan, the predecessor that started it all.

Michael Colucci is a writer for Microsoft Excel which is part of the Knowledge Search network

Sunday, March 1, 2009

Free Small Business Accounting Software

Writen by Elizabeth Morgan

Free small business accounting software primarily focuses on assets. Assets may be described as valuable resources owned by a business, which were acquired at a measurable money cost. As an economic resource, they satisfy three requirements. In the first place, the resource must be valuable. A resource is valuable if it is cash/ convertible into cash; or it can provide future benefits to the operations of the firm. Secondly, the resource must be owned. Mere possession or control of a resource would not constitute an asset; it must be owned in the legal sense of the term. Finally, the resource must be acquired at a measurable money cost. In cases in which an asset is not acquired for cash or a promise to pay cash, the question is what it would have cost had cash been paid for it.

The assets in the balance sheet are listed either in order of liquidity- promptness with which they are expected to be converted into cash- or in reverse order, that is, fixity or listing of the least liquid (fixed) first followed by others. All assets are grouped into categories; that is, assets with similar characteristics are put in one category. The assets included in one category are different from those in other categories. The standard classification of assets divides them into fixed assets, current assets, investments and other assets.

Fixed assets are fixed in the sense that they are acquired to be retained in business on a long-term basis to produce goods and services are not for resale. In contrast to fixed assets, current assets are short-term in nature. They refer to assets/resources, which are either held in the form of cash or are expected to be realized in cash within the accounting period or the normal operating cycle of the business. Investments represent investment of funds in the securities of another company.

Business Accounting Software provides detailed information on Business Accounting Software, Best Business Accounting Software, Free Small Business Accounting Software, Small Business Accounting Software Reviews and more. Business Accounting Software is affiliated with Small Business Accounting Software.