Saturday, May 12, 2007

Business Processes involved in a Prepaid System.



Prepaid System of the Telecom world has most of the components same as in the Postpaid one except for few modifications. They have the Product Catalog, the Universal Resource Management, Voucher Management, the Customer Management, Acquisition and Formating, Rater and Replenishment Module.
Once again, the processes involved in URM, CM, A&F and Rater are the same as in the Postpaid system. The Customer gets his SIM, IMSI and MSISDN from the URM that controls its status and his records related to name, address, status, offers/price plan selected are stored in the Customer Management module.
Various types of vouchers for are maintained for charging/recharging the account for the purpose of making calls. These vouchers and thier status are maintained in the Voucher Management module.
Now we have the Replenishment Module here which is quite similar to the Accounts Receivable module in the Postpaid System. The job of the Replenishment Module is to keep a track of amount charged for a call, calculated by the rating process, to deduct it from the current balance in the account. Thus, when the amount becomes nil in the account, the customer can no longer make a call and has to buy the voucher to recharge his account.
These are the business processes involved in a Telecom domain.
I hope this was helpful for those who want to enter the Telecom world for a job/earning.

End to End Business of a Cellular Postpaid System.



The end to end business of a postpaid system includes components like universal resource management, customer management, acquisition and formatting, rater, billing, bill formatter, accounts receivable and collections. At the very base stands the black box called product catalog.

Universal resource management is a module where all the information regarding the basic entities that contitutes a cellular phone is stored. By basic entities, I mean the MSISDN, the IMSI and the SIM numbers. It stores the information regarding their current status like whether it is in Reserved, Active, Suspended,Cancelled, Aging mode. Each entity has its own life cycle. For example an MSISDN which is actually the cellular phone number can be initially 'reserved' at the time of manufacturing. Once sold, its status becomes 'active' as the subscriber can make calls. In case the subscriber fails to pay the bill for a certain time period, the number can be suspended and resumed once he clears all his bills. If the subscriber does not pay his bills even after the number has been suspended, the number can be cancelled as it goes into collection and after a certain time, it goes into aging mode in which the number cannot be given to any cellular phone for few months. Later, the number once again enters the 'active' pool. There are various processes involved in changing the status from reserved to active then to suspended or to cancelled and then later aging.

Customer Management, as the name suggests, is a module where the list of customers and thier current status are maintained. The mandatory elements like name, billing address and offers/price plans are stored and managed. The customers can approach the customer service representatives to lodge any complain or to inform the change of address or to change offers. The various status of customers related to active, suspended, cancelled are maintained in the database. Process of suspension and cancellation is dependent on the payment of bills on time. A Customer can buy one account and can have several subscribers under it. The payment of all the bills are done through this account via various payment modes like Cheque, Direct Debit, Credit Card, Cash etc. So, whether the customer is in credit or under debit is dependent on his account status. The billing address submitted by the customer is the address where all his bills/invoices are sent.

Once a customer has a connection, he can start making calls. The EDRs and CDRs are generated at the switch level in the network, for each call. The calls can be within the same network or across the different ones. Calls can have roaming facility enabled or disabled. The processes involved in Acquisition and Formatting module takes these files and formats it is a way acceptable by the Rater. The file includes the subscriber number and his corresponding offer.

The job of the Rater is to accept or reject the file from Acquisition and Fomatting. These EDRs and CDRs are processed by rater and the corresponding rates are fetched from the given offer and the call is rated on the basis of the same. The total charge calculated is passed on to the Billing/Invoicing system.

The processes involved in the Billing system stores all the charges of all accounts in the system and calculates the total charge pending for each at the time of generating the end of cycle bills for the customer.Bill formatter module can help to decide the format in which the bill is to be produced for each Customer. Billing system takes into consideration all the One time charges, Recurring charges, charges from the Rater, charges from the Customer management in case any penalty was charged or any credit was given by it and it checks the current balance in the Customer's account and adjusts the final charge with it accordingly to produce the total charge pending for him.

The customer has the option of paying his bill via the mode he had selected earlier at the time of subscription. The Accounts Receivable deals with the process of receiving the payment and adjusting the final amount in the account, resulting in either credit or debit. If the account is in credit and there is amount is not cleared for a certain period of time, the account goes into suspension status and the Collection module starts the process of following up with the customer and collecting the money. In case, it is unable to recover the due amount after several attempts, the account is cancelled.

Product Catalog is one of the major module the impacts the Business of Telecom industry. It contains all the offers and price plans pre-decided by the business to be offered to the customers for the purpose of rating the calls.

This was a simplified overview of how things work in a Telecom postpaid world.

Tuesday, May 8, 2007

Testing - Some Concepts



Here are some facts about testing. There are two kinds of testing- white box testing and black box testing. Also, there is the automated testing and the manual testing. In white box testing, the correctness of the complete source code is tested whereas the black box testing is not concerned with the written code but just with the inputs to be provided and seeing that the output meets the given requirement. Manual testing is performed manually by starting the applications and clicking on various tabs and feeding the inputs and manually checking the output. Automated testing is done by means of tools like winrunner and loadrunner. Using winrunner, one needs to record the activities that needs to be performed repeatedly and then run the ready recorded script each time one needs to test the same thing. The kind of data to be input can be changed manually in the script each time. There can be need for debugging and correcting winrunner scripts, too, at times.
Testing can also be categorized under Unit testing, Integration testing, System testing, User Acceptance testing(UAT). Unit testing are generally performed by the developers. Integration and System testing are what is done by the Testers. Integration testing involves the integrating of different applications and testing them. System Testing is the testing of the complete end to end System of a Business to see if the complete Business Requirement are being met. UAT is done for the Client to check if it meets the Clients requirements and is ready to be accepted by them.
One of the most important role of a Tester is to understand the Requirements and design Test Cases to test all the scenarios in order to catch as many errors/failures as possible. In case of System Testing, creation of an end to end Calendar that meets the Business Requirement might be needed. Tools like Quality Center and Calendar Application makes it possible to organize Test Cases and Calendars at one place and also provided facilities for raising defects and following up on it. The Calendar can be executed manually or using winrunner. Manual work can be slow and automated will be fast and accurate provided the Tester knows how to debug the script in case it gets stuck due to some errors.
Testers should be usually familiar with the Operating System like Unix, Databases like Oracle, Application Server like Weblogic, the Applications to be tested and the business knowledge behind it. He should be comfortable using tools like Exceed, Putty, Toad, Test Director, Calendar Application, Winrunner, Loadrunner and the relevant web-applications.
Testing jobs may not be very highly paid but one just cannot do without implementing this stage of Software production.

Tuesday, February 20, 2007

Working with VSS (Visual Source Safe)



When working in a team on some software project, it is essential to maintain all the codes, xmls and related documents in a common place like a directory. Visual Source Safe is one such type of application that can store all these files in an organized manner. It was a wonderful experience getting familiar with this tool, when I was working in a product-based company long ago. The person handling this tool has to take care of all the check-in requests, which is more of a mechanical kind of work.
All the program files are stored and managed here. The programmer who has to make changes to a particular program file, retrieves the file from VSS by means of check-out operation and makes the required changes to it and then puts the file back into the VSS by means of check-in operation. In some companies , the responsiblity of check-in check-out is given to one person. So, VSS can be rightly called a virtual library of source codes and the person handling this complete application, a librarian. It has the ability to maintain different versions of the project with ease and can handle any kind of file in its Database.
The deployable files are deployed in the testing environment in order to test the successful working of the programs written. These deployable files are also maintained in the VSS.

Now when the latest version of the product is completely developed and ready to be released and there is a need to go to the client site and install it, this client/server application called VSS, which has all the source code files of the product, can be used for completing the installation process successfully.

Thus, VSS plays an important role in organising and managing the program files at one place.


Monday, February 19, 2007

Web Page Technology



Developing web pages was one of my most interesting experiences in professional life. It starts with a very simple concept and gets complicated as you go deeper into it.
First of all, you need to decide the layout of your web-page. Use paper and pencil to decide where you want what to be displayed and what colors you want where including the background. Also, if your web page is user interactive, you will need to decide the position of the text box, combo box etc. in which the user puts some entry. There must be some validation done on these user inputs where entries are acceptable or invalid. Now, if the page is user-interactive, definitely it needs a Database where you will store all the information entered by the user in the web-page. So, a suitable Database is selected. So, this was a short overview of how things are to be done and what is the approach.
The most simple way I had developed such a stand alone program was by using Visual Basic as the coding language and Oracle as the Database. Visual Basic is a very user friendly language and it is easy to code and debug in this language.
Another such stand alone program I had created was using the Java Applets and SQL Server, which is again simple and easy to learn and use.

In case of developing interactive web-pages, we can use JSP/ASP with Javascript/VBScript, respectively.

First of all, design the complete look of the page using HTML, which is pretty simple to learn and use. Now if the pages are user interactive, use JSP and Javascript for validations and insertions of data into the Database. Oracle is a good choice here. If we are using PHP, we can choose MySQL as the Database. We start inserting the JSP/Javascript statements into the written HTML code, wherever required. Your server pages would, thus, be ready. When I was developing these pages, time and again I needed to test it to see where I need to insert my next JSP statements and whether they are validating my inputs or not.


Ofcourse, the last testing was of the insertions into the Database. Connect to the database and check whether the user inputs have been inserted or not. It is really enjoyable to work on this technology as it demands so much creativity and enthusiasm.


Tuesday, February 13, 2007

Working on Mainframes


When I was working on Mainframes for few months, I realised that most of the work in the market on Mainframes are maintenance based. Using COBOL, CICS and DB2, we had to follow the Clients instructions for embedding the changes in the already written thousand lines of program. Thanks to COBOL, a Business Process Language, which is quite easy to learn as it contains statements that are very close to English Language statements and so any novice can easily understand what a given COBOL statement is trying to do. With very little extra effort required, COBOL can be mastered with ease. What was tough in that project was learning and using JCL, the Job Control Language. If one is thorough with COBOL and JCL, he has already gone way ahead to be an expert of Mainframes. As I already said, most of the work are maintenance ones, so working on Mainframes is not so difficult. Only problem an expert faces is the uninteresting screen which is not so fabricated like the ones in open-systems. The screen on which you have to work is boring and gives rise to a monotonous feeling.
In COBOL, there are statements like "PERFORM para1" , "ADD this TO that",etc. and any educated person can easily interpret the meaning of this. One thing that a programmer needs to take care here are the column numbers. There are a total of 80 columns out of which there is separate column numbers dedicated to comments and those for programming. The paragraphs will begin from a specific column number and the statements from a different one.
All the variables and constants to be ever used in the COBOL program should be defined before the start of the actual program, under its DIVISION. The variable length should be mentioned along with its type whether string/numeric , array/single and the optional value can also be mentioned at this stage itself.
Compilation of COBOL program takes certain amount of time owing to the large programs written. Using the JCL, you can execute the COBOL programs. JCL is used to control and execute a batch of jobs and if you are good at writing JCL, you are a genious.
Thus finding a way into the Mainframes work is simple and easy but to stay ahead of average crowd, you will really have to put in your efforts in learning a bit more about the language and specially about the execution using your own JCL script.
I have posted this information for those people who have just come out of college and would need some guidance in deciding about career in Mainframes.

Sunday, February 11, 2007

Socket level programming




Write two programs, one for the Client and one for the Server. Select a port on the Server Computer on which the two programs will communicate with each other i.e a port where the Server program will listen for the messages from the Client and the Client will use this port for sending messages to the Server.
Use this port number in your Client and Server programs.
Run both the programs simultaneously and check whether both are communicating with each other at that socket by sending a message from the Client to the Server.
Once the client and the server communication is established, you can choose to send data from the client to the server in any form including xml files. If the data is sent in xml, then the server program receives this file and extracts the data using the xml parser .
This type of socket programming can be useful in areas where the server needs particular kind of data from the client to store that information in its database.
Another interesting way of communication at the socket level is via the network packets which can be created using a pre-decided standard set of rules. Each packet will contain information in a certain standard format and will be sent by the client over the network to the server, which accepts and decodes it. An example where this kind of programming can be used is in the CAS application system where a user selects to subscribe to certain TV channels and this information is encoded in BITS and sent by the Client in the form of a network packet to the Server, which decodes it and stores this information about a given user in the database.

I had written this program some 4 years back.

Friday, February 9, 2007

My first technical blog

 









Let me start with this simple one - It is something to do with Networking. Do you know how a wired and a wireless network is physically established?

Ans - All the computers that are suppose to be present in the wired Network are connected by means of wires to a common router or a hub which is configured at the server Computer. The workstations can have any windows installed on it and the Server computer should have the Windows NT Server installed on it. All the wireless networks are established by means of a wireless PC cards that is to be installed on each computer participating in the wireless network.
You can connect two computers/laptops directly, without the use of an intermediate router, by means of wire, too, and see one computer in the other. However, it is best to use a router when connecting a small number of computers in a domain.
A switch, another networking device, can also be used in the place of a router or a hub.
A mix and match is also possible where some computers are physically connected by means of wire and others are wirelessly connected to the network. A special case is when we use Desktops and Laptops. The Desktops are connected to the hub/router by the wires and the Laptops are wirelessly connected in the network by means of wireless PC cards.
Sometimes, when you don't see one computer from the other computer connected via a router, refreshing the router physically by means of a button on it solves the problem but note that refreshing the router will throw away all your ip-address and subnet mask address that you have got from your ISP, if you have taken internet connection for your network. So, select to refresh the router depending on the type of situation.


Hope, this was helpful to amateurs.