SMPP

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 89

SMPP 1

Gateway

INTRODUCTION

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 2

Gateway

1. INTRODUCTION
SMPP Gateway is a way of sending a text message with or without using a mobile (cell) phone. Specifically, it is a device or service offering SMS transit, transforming messages to mobile network traffic from other media, or vice versa, allowing transmission or receipt of SMS messages with or without the use of a mobile phone. The technological revolution has caused a boom in the field of computers. With the development of computers and softwares much tedious work for workers has become a simple job. Over the past four decades the computer has made potentially significant contribution to the entire world. Intact the original objective for inventing the computer was to create a fast calculating machine. But in todays fast moving world, computer has became indispensable to modern society that without them our economy world grid to a halt. With the characteristic features like speed, accuracy, delegacy, versatility and power of remembering have been applied to the management for many industrial, business system and establishes. It empowers developers through a rich, flexible, modern development environment for creating secure, high performance communication applications. It pays utmost importance to reliability so it uses connection oriented services. In this the communication between the server and client is by means of xml messages Firstly, we put the data entered in the client side in specific xml messages and send it to the server side. Server parses the xml message. From the parsed xml message the server defines the details of the message such as source and destination message etc. Then the message converted to the SMPP format using the SMPP libraries and is then transmitted to the specific SMSC.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 3

Gateway

1.1 PROJECT OVERVIEW Intelligent Message Sending: You can send SMS messages from our Graphical User Interface (GUI) or from any other interface that supports our configuration. In all of these cases the outgoing messages are collected into a message queue, and sent as fast as possible. In certain situations, for example on New Year's Eve, the GSM network fails. In these cases it is not possible to send SMS messages. The intelligent message sending capability of our SMPP server helps in these situations. If a message cannot be sent for any reason, the software tries to re-send it a couple of times. Between each retry a certain amount of time (e.g. 10 minutes) is spent, to wait for the network to be available again. If there are six failures, the message is considered undelivered and the users are notified. Multi-user architecture: An important element of the SMPP Message Server, is that it has a multi-user architecture. Each user that wants to send out messages connects to the engine with a user name and password. More then one users can use the SMS service simultaneously, but they cannot disturb each other, by reserving too much system resources. Reliable-connection oriented service: An important feature of our SMPP message server is that it uses connection oriented TCP/IP service so the case of data loss will not happen. It also uses the Ping messages to check the connection.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 4

Gateway

1.2 ORGANIZATIONAL OVERVIEW The SMPP Gateway is such a gateway system which is used by any service provider websites, or any single client for sends messages through the network.It empowers developers through a rich, flexible, modern development environment for creating secure, high performance communication applications. It pays utmost importance to reliability so it uses connection oriented services. In this the communication between the server and client is by means of xml messages.Any type of organization such as banks,mobile companies,gas agencies etc can use this gateway for send their messages to the clients mobiles. Subscribers to an SMS-capable Cellular Network may receive short messages on a Mobile Station (MS) from one or more ESMEs. The means whereby these messages arrive at the ESMEvia an interface other than SMPP.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 5

Gateway

SYSTEM STUDY AND ANALYSIS

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 6

Gateway

2. SYSTEM STUDY AND ANALYSIS


The First phase of software development is system study and analysis. The importance of system analysis phase is the establishment of the requirements for the system to be developed and installed. System analysis is the process of gathering and interpreting facts, diagnosing problems and using information to recommend improvements on the system. System analysis is a problem solving activity that requires intensive communication between the system users and developers. System analysis or study is an important phase of any system development process. The system is studied in detail and analysed. The system analyst plays the role of an interrogator and dwells deep into the working of the present system. The system is viewed as a whole and the input to the system are identified. The outputs from the organization are traced through the various processing. A system is simply a set of components to accomplish an objective. Developing a new system, investigating into the operation and making possible changes in the existing system are called System Analysis. Analysis comprises a detailed study of the various operations performed by a system and their relationships within and outside the system. It is the process of gathering and interpreting facts, diagnosing problems and improving the system using the information obtained. The objectives of System Analysis include the following. Identifying the users need. Evaluating the system concept. Performing economic and technical analysis. Establishing cost and scheduled constraints. System analysis is for finding out what happens in the existing systems, deciding on what changes and new features are required and defining exactly what the proposed system must be 2.1 EXISTING SYSTEM In order to justify and appreciate the need for the system we have to study the existing system. By conducting the study, we are able to find out what are the goals specified, whether all the objectives are satisfied and what the disadvantages of the existing system are. An existing system is one which does the same functionality as the one proposed. But there is no such system which provides the same functionality as the one proposed. 2.2 LIMITATIONS OF THE EXISTING SYESTEM The problem with Existing System is that the processing delay that takes the transfer messages from one end to another end is so high, they only support a single protocol message such as http , tcp or any other. B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 7

Gateway

Existing System doesn't support multiple SMSCs. There is no support for multiple types of clients which talk different protocols to SMPP Gateway. Existing system's doesn't provide any acknowledgements to the clients. In most of the existing SMPP Gateways there is no retry mechanism in case of a message failure. 2.3 PROPOSED SYSTEM The main objective of the proposed system is to overcome the drawbacks of the existing system and to develop software that is not so complicated and very user friendly The proposed system named SMPP Gateway is a system which allows the user to send a message from his computer to any other GSM mobile. The system is to be implemented using the Java programming language. The system working is as follows: The first step of our server is to accept the XML message from client to login. The message should be in a specified xml format and the message was send to the queue associated with the server the message will taken by the server after its chance arrives then the xml message was processed and the user id and password was checked against the data in the database. If the user id and corresponding password is correct then it sends an xml message to the client and change its login status otherwise it sends another xml message to the client . The client can now send messages to the server the message is also in xml format the message is then added to the queue in server it will be processed after its time occurs then the parser parses the message and take the from, to and message field from the xml message then the server sends the message to the specified server using SMPP libraries for that the message is converted into the SMPP format. If the message is send successfully the SMSC will provide an acknowledgement to the server. The server will provide a specific xml regarding the acknowledgement to the client also. If suppose the message is not received by the SMSC due to high traffic there is another method for reliable send. If there is no acknowledgment after a specific time interval the server will try to resend the message to the SMSC. After a specific number of try if the message is still not sending the server will provide another xml message to the client regarding the message status. The server also provides connection handling mechanism with the SMSC as well as the TCP/IP client. So if the network is idle for a specified interval of time it will send a ping request to the SMSC if reply message is not getting after a specified interval of time it will try to reconnect to the SMSC. Also for the TCP/IP client it will provide specific ping reply in the form of xml message. 2.4 MERITS OF PROPOSED SYSTEM The proposed SMPP Gateway can connect to multiple SMSCs, there will be a component to identify the proper SMSC where the message to be sent. This gateway will be ready accepting connections from different clients which are using different protocols like TCP/IP and HTTP.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 8

Gateway

This gateway will be sending the proper acknowledgements to the respective clients regarding the success delivery or failure. There will be a configurable retry mechanism in case of any failure. 2.5 FEASIBILITY STUDY Feasibility study is the Second major step in the System development life cycle. The main Objective of the feasibility study is to test the economical, technical and operational feasibility while developing system. This analysis is done by investigating the existing system in the area under investigation and generating an idea about the new system. Feasibility study is a test of System proposed regarding its workability, impact on the organization, ability to meet the needs and effective use of resources. Thus, when a new project is proposed, it normally goes through a feasibility study before it is approved for development. A feasibility study made to see if the project on completion will serve the purpose of the organization for the amount of work, effort and the time that is spend on it. Feasibility study lets the developer foresee the future of the project and usefulness. All the projects are feasible given unlimited resources and infinite time. Unfortunately, the development of the computer based system is more likely to be played by a security of resources and difficulty delivery dates. Feasibility and risk analysis are related in many ways. If project risk is great, the feasibility of producing the quality software is reduced. Steps in Feasibility Study Feasibility study involves eight steps: Form a project team and appoint a project leader Prepare a System flowchart Enumerate the potential candidate systems Describe and identify characteristics of candidate systems Describe and evaluate performance and cost effectiveness of each candidate systems Weight system performance and cost data Select the best Candidate system Prepare and report final project directive and management The key considerations that are involved in feasibility analysis conducted are Operational feasibility Economical Feasibility Technical Feasibility Behavioral feasibility a. Operational feasibility An estimate should be made to determine how much effort and care will go into the developing of the system including the training to be given to the user. Usually people resist new changes that are coming in their progression. It is common knowledge that the computer installations would certainly affect

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 9

Gateway

the turnover, transfer and employee job status. Hence an additional effort is to be made to train and educate the users on the new way of the system. b. Economic feasibility Economical analysis is the most frequently used method for evaluating the effectiveness of the candidate system. More commonly known as cost benefits analysis, the procedure is to determine the benefits and savings that are expected from a candidate system and compare with cost. It benefits overweigh costs then the decision is made to designed implement the system. Otherwise further modifications or alterations in the proposed system will have to be made if it is to have a chance for being approves in accuracy at each face of system development. c. Technical feasibility Technical feasibility centers on the existing computer system and to what extend it can support the proposed addition .The system, been improved for single organizations there may be some additions that are to be made on the system by the user. The user some needs a printed or some other hardware to be added to the system that will raise the technical complexity. Then the user has to check whether the system will support the addition or not. This involves financial considerations to accommodate technical enhancements. d. Behavioral feasibility Behavioral feasibility determines how much effort will go into educating, selling and training the user staff on a candidate system. People are inherently resistant to change and computing has been known to facilitate change. Since the change is user friendly, user training is a very easy matter.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 10

Gateway

SYSTEM SPECIFICATION

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 11

Gateway

3. SYSTEM SPECIFICATION
The minimum hardware and software requirements for the project entitled SMPP GATEWAY: 3.1 HARDWARE REQUIREMENTS Processor : RAM : Hard Disk : Drives : Keyboard : Mouse : Modem : Monitor : Intel Pentium IV 512 MB 40 GB CD ROM Drive Standard Optical 56Kbps SVGA/VGA

3.2 SOFTWARE REQUIRMENTS OS Platform : Any OS that supports JRE 1.6 Language : Java IDE : Net Beans 6.0 IDE Platform : Java Platform Standard Edition 1.6 Back end : MySQL Server 5.0 TECHNOLOGIES USED Java Threads TCP/IP Swings XML parsing MySQL Server 5.0 Queue SMPP

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 12

Gateway

JAVA Java is a language which is simpler to understand, easier to implement and yet portable across different platforms, than any other OOPS language. It is currently popular because it is compiled to machine independent byte code. This allows programmers to write one kind of program code for all platforms. Not only it is a powerful programming language built to secure, cross-platform and international, but also java is being continually extended to provide language feature and libraries that elegantly handle problems that are difficult in traditional programming languages. Java based systems are easier to understand and express. Classes designed to fit the problem tend to express it better. Java produces a maximum leverage with libraries. This is accomplished by casting libraries into new data types (classes), so that bringing a library means adding new types to the language. Another feature of java is its efficient error handling system, which adds to the robustness to the system. Java exception handling is a way to guarantee that an error is noticed, and that something happens as a result. The primary economic motivation for selecting java is the easy use of existing code in the form of class libraries. Java was developed at Sun Microsystems. Work on Java initially began with the goal of creating a platform-independent language and OS for consumer electronics. The original intent was to use C++, but as work progressed in this direction, developers identified that creating their own language would serve them better. The effort towards consumer electronics led the Java team, then known as First Person Inc., towards developing h/w and s/w for the delivery of videoon-demand with Time Warner. Today Java is both a programming language and an environment for executing programs written in Java Language. Unlike traditional compilers, which convert source code into machine level instructions, the Java compiler translates java source code into instructions that are interpreted by the runtime Java Virtual Machine. Java is an interpreted language. Java is the first programming language designed from ground up with network programming in mind. The core API for Java includes classes and interfaces that provide uniform access to a diverse set of network protocols. As the Internet and network programming have evolved, Java has maintained its cadence. New APIs and toolkits have expanded the available options for the Java network programmer FEATURES OF JAVA LANGUAGE AS FOLLOWS: OBJECT ORIENTED Inheritance Encapsulation Polymorphism

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 13 Multithreaded Distributed Portability Security INTERPRETED

Gateway

ARCHITECTURE NEUTRAL AND PORTABLE DYNAMIC AND DISTRIBUTED SIMPLE ROBUST SECURE HIGH-PERFORMANCE MULTITHREADED SWING Swing is a widget toolkit for Java. It is part of Sun Microsystems' Java Foundation Classes (JFC) an API for providing a graphical user interface (GUI) for Java programs. Swing was developed to provide a more sophisticated set of GUI components than the earlier Abstract Window Toolkit. Swing provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. Swing introduced a mechanism that allowed the look and feel of every component in an application to be altered without making substantial changes to the application code. The introduction of support for a pluggable look and feel allows Swing components to emulate the appearance of native components while still retaining the benefits of platform independence. This feature also makes it easy to make an application written in Swing look very different from native programs if desired. Originally distributed as a separately downloadable library, Swing has been included as part of the Java Standard Edition since release 1.2. The Swing classes and components are contained in the javax.swing package hierarchy. Features of Swings Lightweight. Not built on native window-system windows. Much bigger set of built-in controls. Trees, image buttons, tabbed panes, sliders, toolbars, color choosers, tables, text areas to display HTML or RTF, etc.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 14

Gateway

Much more customizable. Can change border, text alignment, or add image to almost any control. Can customize how minor features are drawn. Can separate internal representation from visual appearance. Pluggable look and feel. Can change look and feel at runtime, or design own look and feel. Many miscellaneous new features. Double-buffering built in, tool tips, dock able tool bars, keyboard accelerators, custom cursors, etc.

THREADS Thread is conceptually a flow of control within a program. A thread is similar to the more familiar notion of a process, except that multiple threads within the same application share much of the same state-in particular, they run in the same address space. Sharing the same address space means that threads share instance variables, but not local variables. Multiple threads in an application have the same problem as the players sharing a golf course: in a word, synchronization. You cant have several threads trying to access the same variable without some kind of coordination .A thread can reserve the right to use an object until its finished with its task, And a thread that is more important can raise its priority, asserting its right to play through. MULTITHREADING In computer science, a thread of execution is a fork of a computer program into two or more concurrently running tasks. The implementation of threads and processes differs from one operating system to another, but in general, a thread is contained inside a process and different threads in the same process share some resources (most commonly memory), while different processes do not. On a single processor, multithreading generally occurs by time-division multiplexing (as in multitasking): the processor switches between different thread Multithreading computers have hardware support to efficiently execute multiple threads. These are distinguished from multiprocessing systems (such as multi-core systems) in that the threads have to share the resources of single core: the computing units, the CPU caches and the translation look aside buffer (TLB). Where multiprocessing systems include multiple complete processing units, multithreading aims to increase utilization of a single core by leveraging thread-level as well as instruction-level parallelism. As the two techniques are complementary, they are sometimes combined in systems with multiple multithreading CPUs and in CPUs with multiple multithreading cores. Different type of multi-threading are follows,

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 15

Gateway

Block multi-threading Interleaved multi-threading Simultaneous multi-threading


COLLECTION FRAME WORK Hash table A hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys, (e.g., a person's name) to their associated values (e.g., their telephone number). The hash function is used to transform the key into the index (the hash) of an array element (the slot or bucket) where the corresponding value is to be sought. Ideally, the hash function should map each possible key to a unique slot index, but this ideal is rarely achievable in practice (unless the hash keys are fixed; i.e. new entries are never added to the table after creation). Most hash table designs assume that hash collisionsthe situation where different keys happen to have the same hash valueare normal occurrences and must be accommodated in some way. In a well-dimensioned hash table, the average cost (number of instructions) for each lookup is independent of the number of elements stored in the table. Many hash table designs also allow arbitrary insertions and deletions of key-value pairs, at constant average cost per operation. In many situations, hash tables turn out to be more efficient than search trees or any other table lookup structure. For this reason, they are widely used in many kinds of computer software, particularly for associative arrays, database indexing, caches, and sets. A good hash function is essential for good hash table performance. Hash collisions are generally resolved by some form of linear search, so if a hash function tends to produce similar values, slow searches will result. XML PARSING XML is the meta language defined by the Worldwide Web Consortium (W3C) that can be used to describe a broad range of hierarchical mark up languages. It is a set of rules, guidelines, and conventions for describing structured data in a plain text, editable file. Using a text format instead of a binary format allows the programmer or even an end user to look at or utilize the data without relying on the program that produced it. However the primary producer and consumer of XML data is the computer program and not the end-user. Like HTML, XML makes use of tags and attributes. Tags are words bracketed by the < and > characters and attributes are strings of the form name="value" that are inside of tags. While HTML specifies what each tag and attribute means, as well as their presentation attributes in a browser, XML uses tags only to delimit pieces of data and leaves the interpretation of the data to the application that uses it. In other words, XML defines only the structure of the document and does not define any of the presentation semantics of that document.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 16

Gateway

SGML. The designers of XML took the best parts of SGML, used their experience as a guide and produced a technology that is just as powerful as SGML, but much simpler and easier to use. XML-based documents can be used in a wide variety of applications including vertical markets, e-commerce, business-to-business communication, and enterprise application messaging. XML and the Java Platform In many ways, XML and the Java Platform are a partnership made in heaven. XML defines a cross platform data format and Java provides a standard cross platform programming platform. Together, XML and Java technologies allow programmers to apply Write Once, Run Anywhere fundamentals to the processing of data and documents generated by both Java based programs and non-Java based programs. QUEUE A queue is a particular kind of collection in which the entities in the collection are kept in order and the principal operations on the collection are the addition of entities to the rear terminal position and removal of entities from the front terminal position. This makes the queue a First-In-First-Out (FIFO) data structure. In a FIFO data structure, the first element added to the queue will be the first one to be removed. This is equivalent to the requirement that whenever an element is added, all elements that were added before have to be removed before the new element can be invoked. A queue is an example of a linear data structure. Queues provide services in computer science, transport and operations research where various entities such as data, objects, persons, or events are stored and held to be processed later. In these contexts, the queue performs the function of a buffer. The importance of queue are as follows 1. Scalability:Observing the queue length and tuning the number of backend nodes accordingly, applications can effectively scale smoothly accordingly to the amount of traffic. A growing queue length or an almost always zero queue length is an indication of how loaded your worker roles are and you might want to scale them up or down accordingly The use of queues decouples different parts of the application, making it easier to scale different parts of the application independently. This allows the number of web and worker roles to be adjusted independently without affecting the application logic. Separate queues can be used for work items of different priorities and/or different weights, and separate pools of backend servers can process these different queues. In this way, the application can allocate appropriate resources (e.g. in term of the number of servers) in each pool, thereby

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 17

Gateway

efficiently use the available resources to meet the traffic needs of different characteristics 2. Extensibility:

Different technologies and programming language can be used to implement different parts of the system with maximum flexibility. For example, the component on one side of the queue can be written in .NET framework , and the other component can be written in Python. 3. Decoupling:Changes within a component are transparent to the rest of the system. For example, a component can be re-written using a totally different technology or programming language, and the system still works seamlessly without changing the other components, since the components are decoupled using queues. The old implementation and the new implement can run on different servers at the same time, and process work items off the same queue. All these are transparent to the other components in the application .

TCP/IP TCP/IP (Transmission Control Protocol/Internet Protocol) is the basic communication language or protocol of the Internet. It can also be used as a communications protocol in a private network (either an intranet or an extranet). When you are set up with direct access to the Internet, your computer is provided with a copy of the TCP/IP program just as every other computer that you may send messages to or get information from also has a copy of TCP/IP. TCP/IP is a two-layer program. The higher layer, Transmission Control Protocol, manages the assembling of a message or file into smaller packets that are transmitted over the Internet and received by a TCP layer that reassembles the packets into the original message. The lower layer, Internet Protocol, handles the address part of each packet so that it gets to the right destination. Each gateway computer on the network checks this address to see where to forward the message. Even though some packets from the same message are routed differently than others, they'll be reassembled at the destination.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 18

Gateway

JAR (file format) In computing, a JAR file (or Java Archive) aggregates many files into one. Software developers generally use .jar files to distribute Java classes and associated metadata. JAR files build on the ZIP file format. Computer users can create or extract JAR files using the jar command that comes with the JDK. They can also use zip tools. A JAR file has an optional manifest file located in the path METAINF/MANIFEST.MF. The entries in the manifest file determine how one can use the JAR file. JAR files intended to be executed as standalone programs will have one of their classes specified as the "main" class. MySQL Server 5.0 MySQL is a fast, easy-to-use RDBMS used being used for many small and big businesses. MySQL is developed, marketed, and supported by MySQL AB, which is a Swedish company. MySQL (pronounced My Ess Q El) is an open source, SQL Relational Database Management System (RDBMS) that is free for many uses (more detail on that later). Early in its history, MySQL occasionally faced opposition due to its lack of support for some core SQL constructs such as sub selects and foreign keys. Ultimately, however, MySQL found a broad, enthusiastic user base for its liberal licensing terms, perky performance, and ease of use. Its acceptance was aided in part by the wide variety of other technologies such as PHP, Java, Perl, Python, and the like that have encouraged its use through stable, well-documented modules and extensions. MySQL has not failed to reward the loyalty of these users with the addition of both sub selects and foreign keys.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 19 MySQL is becoming so popular because of many good reasons.

Gateway

MySQL is released under an open-source license. So you have nothing to pay to use it.

MySQL is a very powerful program in its own right. It handles a large subset of the functionality of the most expensive and powerful database packages.

MySQL uses a standard form of the well-known SQL data language.

MySQL works on many operating systems and with many languages including PHP, PERL, C, C++, JAVA etc.

MySQL works very quickly and works well even with large data sets.

MySQL is very friendly to PHP, the most appreciated language for web development.

MySQL supports large databases, up to 50 million rows or more in a table. The default file size limit for a table is 4GB, but you can increase this (if your operating system can handle it) to a theoretical limit of 8 million terabytes (TB).
MySQL is customizable. The open source GPL license allows programmers to modify the MySQL software to fit their own specific environments.

SMPP The Short Message Peer to Peer (SMPP) protocol is an open, industry standard protocol designed to provide a flexible data communications interface for transfer of short message data between a Message Center, such as a Short Message Service Centre (SMSC), GSM Unstructured Supplementary Services Data (USSD) Server or other type of Message Center and a SMS application system, such as a WAP Proxy Server, EMail Gateway or other Messaging Gateway. Using the SMPP protocol, an SMS application system called the External Short Message Entity (ESME) may initiate an application layer connection with an SMSC over a TCP/IP or X.25 network connection and may then send short messages and receive short messages to and from the SMSC respectively. The ESME may also query, cancel or replace short messages using SMPP. SMPP Protocol Definition SMPP is based on the exchange of request and response protocol data units (PDUs) between the ESME and the SMSC over an underlying TCP/IP or X.25 network connection. The SMPP protocol defines

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 20

Gateway

a set of operations and associated Protocol Data Units (PDUs) for the exchange of short messages between an ESME and an SMSC the data that an ESME application can exchange with an SMSC during SMPP operations. The receiving entity must return the associated SMPP response to an SMPP PDU request. * The only exception to this rule is the alert_notification PDU for which there is no response The exchange of messages between an ESME and SMSC via SMPP may be categorised under three distinct groups of transactions as follows: i) messages sent from the ESME (Transmitter) to the SMSC ii) messages sent from the SMSC to the ESME (Receiver) iii) messages sent from the ESME (Transceiver) to the SMSC and messages sent from the SMSC to the ESME (Transceiver)

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 21

Gateway

SYSTEM DESIGN

4. SYSTEM DESIGN
System Design develops the architectural details required to build system or product. The system design process encompasses the following activities: Partition the analysis model into subsystems. Identify concurrency that is dictated by the problem. Develop design for the user interface. Choose a basic strategy or implementing data management. Identify global resources and the control mechanisms required to access them. Design an appropriate control mechanism for the system, including task management. Consider how boundary System design provides an understanding of the procedural details, B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 22

Gateway

necessary for implementing the system recommended in the feasibility study. Basically it is all about the creation of a new system. This is critical phase since it decides the quality of the system. It has a major impact on the testing and implementation phases. System design provides an understanding of the procedural details, necessary for implementing the system recommended in feasibility study. Basically it is all about the creation of a new system. This is critical phase since it decides the quality of the system and has a major impact on the testing and implementation phases. System design is the most creative and challenging phases of the system life cycle. The term design describes the final system and the process by which it is to be developed. During the system design phase the designers must design how to produce an efficient and effective system. There are two levels of system design: Logical design Physical design In the logical design, the designer produces a specification of the major features of the system which meets the objectives. The delivered product of logical design includes current requirements of the following system components: Input design Output design Database design Physical design takes this logical design blue print and produces the program specification. Physical design and user interfaces for a selected hardware and software. Structured design is data flow based methodology that partitions a program into a hierarchy of modules organized top-down manner with details at the bottom. The value of using a top-down approach, starting at the general levels to gain an understanding of the system and gradually moving down to levels of greater detail, one data flow diagram become several at the next lower level. The top top-down method is also widely used in the systems engineering and software design. 4.1 INPUT DESIGN The design of input focuses on controlling the amount of input required, controlling the errors, avoiding delay, avoiding extra steps and keeping the process simple. The input is designed in such a way so that it provides security and ease of use with retaining the privacy. Input Design considered the following things: What data should be given as input? How the data should be arranged or coded? The dialog to guide the operating personnel in providing input. Methods for preparing input validations and steps to follow when error occur. 4.2 OUTPUT DESIGN

o o o o

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 23

Gateway

A quality output is one, which meets the requirements of the end user and presents the information clearly. In output design it is determined how the information is to be displaced for immediate need and also the hard copy output. It is the most important and direct source information to the user. Efficient and intelligent output design improves the systems relationship to help user decision-making. Designing computer output should proceed in an organized, well thought out manner; the right output must be developed while ensuring that each output element is designed so that people will find the system can use easily and effectively. When analysis designs computer output, they should: Identify the specific output that is needed to meet the requirements. Select methods for presenting information. Create document, report, or other formats that contain information produced by the system.

4.3 DATA FLOW DIAGRAM Analysis model helps us to under stand the relationship between different components in the system design. Analysis model shows the user clearly how a system will function. This is the first technical representation of a system. The analysis modeling must achieve three primary objectives: 1. To establish a basis for creation of software design. 2. To describe what the user requires. 3. To define set of requirements that can be validated once the software is built. A dataflow diagram is a graphical technique that depicts information and transforms that are applied as data move from input to output. The DFD is used to represent increasing information flow and functional details. A level-0 DFD is also called a fundamental system model represents the entire software elements as a single bible with input and output indicated by incoming and outgoing arrows respectively. Additional process and information flow parts are represented in the next level, i.e., level 1 DFD. Each of the process represented at level 1 are sub functions of overall system depicted in the context model. Any processes that are complex in level 1 level will be further represented into sub functions in the next level, i.e., level 2. Data flow diagrams is a means of representing a system at any level of detail with a graphic network of symbols showing data flows, data stores, data process and data stores. The purpose of data flow diagram is to provide a semantic bridge between users and system developers. The diagram is graphical, eliminating thousands of words, logical representations, modeling what system does; hierarchical, showing systems at any level of details; and jargon less, allowing user understanding and reviewing. The goal of data flow diagramming is to have a commonly understood model of a system. The diagram is the basis of the structural analysis. Data flow diagrams are supported by other techniques of structured system analysis data structured diagram, data dictionaries and procedure representing techniques such as decision tables, decision tree and structured English.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 24

Gateway

Components of Data Flow Diagram There are only four symbols that are used in the drawing of data flow diagrams. These are explained below together with the rules that apply to them. External Entities External entities represent the sources of data that enter the system or the recipients of data that leave the system. They can be duplicated, one or more times on the diagram to avoid line crossing. Process

Processes represent activities in which data is manipulated by being stored or retrieved or transformed in some way. A circle represents it. The process will show the data transformation or change. Data coming into a process must be worked-on or transformed in some way. Thus all process my have an input and output. Data Stores

Data stores represent stores of data within the system. Data stores may be long-term files such as sales ledgers, or may be short-term accumulations: For example batches of documents that are waiting to be processed. Each data store should be given a reference followed by an arbitrary number. Data Flow A data flow shows the flow of information from its source to its destination. A line represents a data flow, with arrowheads showing the direction of flow. Information always flows to or from a process and may be written, verbal or electronic. Each data flow may be referenced by the processes or data stores at its head and tail, or by a description of its contents.

Level-0(Context Level)

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 25

Gateway

Level-1: admin operations

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 26

Gateway

Level 2: user management

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 27

Gateway

Level2: smsc management

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 28

Gateway

Level 1: Client operation

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 29

Gateway

4.4 STRUCTURE CHART

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 30

Gateway

4.5 FLOW CHART B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 31

Gateway

4.6 MENU TREE B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 32

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 33 4.7 UNIFIED MODELING LANGUAGE (UML) DIAGRAMS

Gateway

The Unified Modeling Language (UML) is a graphical language for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. The UML offers a standard way to write a system's blueprints, including conceptual things such as business processes and system functions as well as concrete things such as programming language statements, database schemas, and reusable software components." The important point to note here is that UML is a 'language' for specifying and not a method or procedure. The UML is used to define a software system; to detail the artifacts in the system, to document and construct - it is the language that the blueprint is written in. The UML may be used in a variety of ways to support a software development methodology (such as the Rational Unified Process) - but in itself it does not specify that methodology or process.

USE CASE DIAGRAMS


A use case diagram is a diagram that shows the relationships among actors and use cases within a system. A use case model is comprised of one or more use case diagrams and any supporting documentation such as use case specifications and actor definitions. This diagram include Use Cases Actors Associations System Boundary Boxes Use cases: A use case describes a sequence of actions that provide something of measurable value to an actor and is drawn as a horizontal ellipse. Actors: An actor is a person, organization, or external system that plays a role in one or more interactions with your system. Actors are drawn as stick figures. Associations: Associations between actors and use cases are indicated in use case diagrams by solid lines. An association exists whenever an actor is involved with an interaction described by a use case. System Boundary Boxes (optional): You can draw a rectangle around the use cases, called the system boundary box, to indicate the scope of your system. Anything within the box represents functionality that is in scope and anything outside the box is not.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 34 Message sending

Gateway

Admin processes

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 35

Gateway

CLASS DIAGRAM: Class diagrams are widely used to describe the type of object in a system and their relationships. Class diagrams model class structure and contents using design elements such as classes, packages and object. Class diagrams describe three different perspectives when designing a system, conceptual, specification, and implementation. The association relationship is the most common relationship in a class diagram. The association shows the relationship between instances of classes. For example, the class Order is associated with the class Customer. The multiplicity of the association denotes the number of object that can participate in then relationship. For example, an Order object can be associated to only one customer, but a customer can be associated to much orders. Another common relationship in class diagrams in a generalization. A generalization is used when two classes are similar, but have some differences. Look at the generalization below:

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 36

Gateway

SEQUENCE DIAGRAM A sequence diagram shows interaction among objects as a twodimensional chart. The chart is read from top to bottom. The objects participating in the interaction are shown at the top of the chart as boxes to a vertical dashed lines. Inside the box the name of the object is written,the name of the object is underlined. The object appearing at the top signifies that the objects already existed when the use case execution was initiated. However, if,some objects is created during the execution of the use case and participates in the interaction ,the that object should be shown at the appropriate place on the diagram where it was created. The vertical dashed line is called the objects lifeline.The lifeline indicates the existence of the object at any particular point of the time.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 37 Sequence Diagram (Admin operation)

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 38

Gateway

Sequence Diagram (Client operation)

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 39

Gateway

ACTIVITY DIAGRAMS

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 40

Gateway

Activity diagrams represent the business and operational workflows of a system. An Activity diagram is a dynamic diagram that shows the activity and the event that causes the object to be in the particular state. Elements of an Activity diagram Element and its description Initial Activity: This shows the starting point or first activity of the flow. Denoted by a solid circle. This is similar to the notation used for Initial State. Activity: Represented by a rectangle with rounded (almost oval) edges. Concurrent Activities: Some activities occur or in parallel. Such activities are called concurrent activities. Symbol

Final Activity: The end of the Activity diagram is shown by a bull's eye symbol, also called as a final activity.

Signal: When an activity sends or receives a message, that activity is called a signal. Signals are of two types: Input signal (Message receiving activity) shown by a concave polygon and Output signal (Message sending activity) shown by convex polygon.

Activity Diagram (Admin operations )

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 41

Gateway

Activity Diagram (message sending)

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 42

Gateway

4.8 DATABASE DESIGN

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 43

Gateway

A database is a collection of interested data stored with minimum redundancy to serve many users quickly and efficiently. The general objectives considered in database design are controlled redundancy, case of learning and use, data independency, more information at low cost, accuracy and integrity, recover from failure, privacy and security performance. In a database environment, the Database Management System (DBMS) is the software that provides the interface between the data file on a disk and the management, they differ in the way they structure data. The three types of data structures are hierarchical, network and relational. Here we use relational structuring in which all data and relationships are presented in a flat, two-dimensional table called a relation. A relation is equivalent to file. Data structuring is refined through a process called normalization. Data are grouped into simplest way possible, so that later changes can be made with a minimum impact on data structures. Based on the requirements determined during the definition phase of project life cycle, the data elements describing the entity were determined. They are later submitted to normalization to remove redundancy and to optimize them. DATA NORMALIZATION Normalization is the process of efficiently organizing data in a database. There are two goals of the normalization process: eliminate redundant data(for example, storing the same data in more than one table) and ensure data dependencies make sense (only storing related data in a table). Both if these are worthly goals as they reduce the amount of space a database consumes and ensure that data is logically stored. The database commonly has developed a series of guidelines for ensuring that databases are normalized. These are referred to as normal forms and are numbered from one (the lowest form of normalization, referred to as first normal form or 1NF) through five (fifth normal form or 5NF). Data in First Normal Form 1). Remove repeating data from table. 2). From the removed data, create one or more tables and relationships. Data in Second Normal Form 1). Identify tables and relationships with more than one key. 2). Remove data that depends on only one part of the key. 3). From the removed data, create one or more tables and relationships. Data in Third Normal Form 1). Remove that depends on other hand in the table or relationship and not on the key. 2). From the removed data , create one or more tables and relationships. Advantages of normalization are: Helps in reduction in the complexity of maintaining data integrity by removing the redundant data. It reduces inconsistency of data. Eliminate the repeating fields. Creates a row for each occurrence of a repeated field. Allows exploitation of column functions. The second normal form has the characteristics of the first normal form and the third normal form has the characteristics of second normal form and

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 44

Gateway

all the attributes must fully be dependent on the primary key . The proposed system is using second normal form as it is found most suitable.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 45 Database Name:smppdb Table Name: Client_reg Table Description: Used to Store Client Details FIELD NAME DATA TYPE CONSTRAINTS

Gateway

DESCRIPTION

id_client_reg Client_name Client_address Client_email Client_phone

Int(10) Varchar(20) Varchar(30) Varchar(20) Int(20)

Primary key Not null Not null Not null Not null

Client registration id Client name Client address Client email Client phone

Table Name : Client_log Table Description :Used to Store Client login Details FIELD NAME DATA TYPE CONSTRAINTS DESCRIPTION

Id_client_log Client_userid Client_password Client_ state

Int(10) Varchar(20) Varchar(20) Boolean

Foreign key Primary key Not null Not null

Id Client login Client userid Clientpassword Client state

Table Name : server_config Table Description: Used to Store SMSC and SMPP configuration details Details B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 46

Gateway

FIELD NAME

DATA TYPE

CONSTRAINTS

DESCRIPTION

id_server_config Mode bind_option Ip_address port_no system_id Password

Int(10) Varchar(10) Varchar(10) Varchar(20) Int(10) Varchar(10) Varchar(10)

Primary key Not null Not null Not null Not null Not null Not null

Id server config Connectionmode Bind option Ip address Port number System id password

Table Name : Admin_log Table Description :Used to Store admin login Details FIELD NAME DATA TYPE CONSTRAINTS DESCRIPTION

Admin_userid Admin_password

Varchar(20) Varchar(20)

Primary key Not null

Admin userid Admin password

Table Name :Message_details Table Description :Used to Store message details Details

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 47 FIELD NAME DATA TYPE CONSTRAINTS

Gateway DESCRIPTION

id_message_details message_sender message_receiver Message_time message_status Message

Int(10) Varchar(20) Varchar(20) Date time Varchar(20) Varchar(50)

Primary key Not null Not null Not null Not null

id_message_details Message sender Message receiver Message time Message status Message

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 48

Gateway

SYSTEM CODING

5. SYSTEM CODING
The coding step is it process that transforms design into a programming language. It translates a detail design representation of software into a programming language realization. The translation B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 49

Gateway

process continues when a compiler accepts source code as input as produces machine dependent object code as output. Quality of source code can be improved by the use of structures coding techniques; good coding style and readable, consistent code format. During coding, some coding standards are to be followed. This has to purpose; reducing the chance of making it easier for sometimes to modify the code later on. Coding phase affects both testing and maintenance profoundly. SAMPLE CODE Smpp server: RequestProcessor.java package com.helion.smpp.server.processor; import SmscConnector.Connector; import com.helion.smpp.server.ClientSocket; import com.helion.smpp.server.EchoServer; import com.helion.smpp.server.db.DatabaseManager; import com.helion.smpp.server.gy.vo.impl.Message; import com.helion.smpp.server.io.Writer; import com.helion.smpp.server.utils.Constants; import com.helion.smpp.server.xml.ClientQueue; import com.helion.smpp.server.xml.ClientRequest; import com.helion.smpp.server.xml.XMLSender; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Date; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author DAY */ public class RequestProcessor { public void processRequest(ClientRequest clientRequest ){ System.out.println("process Request"); if(clientRequest.getRequestType().equals(Constants.XML_ELEM ENT_LOGIN)){ processLoginRequest(clientRequest); }

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 50

Gateway

else if(clientRequest.getRequestType().equals(Constants.XML_ELEM ENT_LOGIN_RESPONSE)){ System.out.println("process Response"); processLoginResponse(clientRequest); } else if(clientRequest.getRequestType().equals(Constants.XML_ELEM ENT_MESSAGE)){ System.out.println("process Request"); processMessageSend(clientRequest); } else if(clientRequest.getRequestType().equals(Constants.XML_ELEM ENT_PING)){ System.out.println("process Request"); processPingResponse(clientRequest); } else if(clientRequest.getRequestType().equals("changepass")){ System.out.println("change pass process Request"); processChangePassword(clientRequest); } } private String getServer(String to) { System.out.println(" To = "+to); int index = to.indexOf('@'); String server = to.substring(++index); return server; } private void processLoginRequest(ClientRequest clientRequest) { System.out.println("Login request"); Connection connection = DatabaseManager.getInstance().getConnection(); System.out.println("DB Connected"); PreparedStatement preparedStatement = null; ResultSet rs = null; try { preparedStatement = connection.prepareStatement( Constants.LOGIN_AUTHENTICATION_QUERY); B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 51 preparedStatement.setString(1, clientRequest.getUser()); rs = preparedStatement.executeQuery(); if (rs.next()) { try {

Gateway

if(clientRequest.getPassword().equals(rs.getString("client_passwor d"))) { System.out.println("Authnetication Success"); clientRequest.setLoginResponse(true); clientRequest.setRequestType(Constants.XML_ELEMENT_LOG IN_RESPONSE); ClientQueue.getInstance().addToQueue(clientRequest); System.out.println("\nQueue Added"); //break; }else{ System.out.println("Authnetication Falure"); clientRequest.setLoginResponse(false); clientRequest.setRequestType(Constants.XML_ELEMENT_LOG IN_RESPONSE); ClientQueue.getInstance().addToQueue(clientRequest); System.out.println("\nQueue Added"); //break; } } catch (SQLException ex) { ex.printStackTrace(); } } else{ System.out.println("Authnetication Falure"); clientRequest.setLoginResponse(false); clientRequest.setRequestType(Constants.XML_ELEMENT_LOG IN_RESPONSE); private void processChangePassword(ClientRequest clientRequest) { try { Connection connection = DatabaseManager.getInstance().getConnection(); B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 52

Gateway

PreparedStatement preparedStatement = null; preparedStatement = connection.prepareStatement("update client_log set Client_password=? where Client_userid=? and Client_password=?"); preparedStatement.setString(1, clientRequest.getNpass()); preparedStatement.setString(2, clientRequest.getUser()); preparedStatement.setString(3, clientRequest.getOpass()); System.out.println("....."+clientRequest.getNpass() +"...."+clientRequest.getOpass()+"........ "+clientRequest.getUser()); preparedStatement.executeUpdate(); } catch (SQLException ex) { Logger.getLogger(RequestProcessor.class.getName()).log(Level.SE VERE, null, ex); } } }

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 53

Gateway

SYSTEM TESTING

6. SYSTEM TESTING
Testing is the last stage of the software development before we release the product to the customer. Software testing is a critical element of software B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 54

Gateway

quality assurance and represents the ultimate review of specification, design and coding. Software testing can be looked upon as one among the many processes. Testing is the process of executing a program with the explicit intention of finding errors. Testing cannot show the absence of defects, it can only show that software defects are present. Software Testing Techniques The importance of testing and its impact on software cannot be underestimated. The greater visibility of software systems and the cost associated with the software failure are motivating factors for planning through testing. It is not uncommon for a software organization to spent 40% of its effort on testing. A number of rules that act as Testing Objectives are: Testing is a process of executing a program with the aim of finding errors. A good test case will have a good chance to find an undiscovered error. A successful test case uncovers a new error. Unit Testing The first level testing is unit testing. Unit testing concentrates on each unit of the software as implemented in source code. Initially tests focus on each module individually, ensuring that it functions properly as a unit. The modules must then be assembled or integrated to form the complete software package. There are tests that occur as part of unit testing. The module interfaces are tested to ensure that information properly flows into and out of a program under test. The data structures are also tested for integrity. Boundary conditions are tested to ensure that the module operates properly at boundaries established to limit or restrict processing. All independent paths through the control structures are exercised to ensure that all statements in a module have been executed at least once. Finally all error handling paths are tested. In this project, after coding each module have been individually tested to determine whether they are coded correctly so that they satisfy the requirements in the specifications and execute effectively as individual units was tested and run individually. All unnecessary coding were removed and it was ensured that all modules worked, as programmer would expect. Logical errors found were corrected. So, by working all the modules independently and verifying the output of each module in the presence of staff concluded that the program was functioning as expected. Integration Testing The next level of the testing is often called as Integration testing in which many tested modules are combined into sub-system, which are then tested. The output from the unit testing becomes the input to the integration testing. The goal here is to see if the modules can be integrated properly, the emphasis being on testing interfaces between modules. Modules in this software are combined and tested after the unit testing. After connecting all the sub modules into whole module, the connections between the modules are correctly established. The back end and front end are working as a whole module and the data entered in the front end once submitted were successfully entered into the database. On request the data was successfully retrieved. After performing the integration testing, the next steps should be the output testing of the developed system, because no system could be useful if it does

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 55

Gateway

not produce the required output in a specific format. The output generated by the developed system should be compared with the format required by the user. The format can be presented by using the screen or in the printed form. According to this project, using integrated test plans prepared in the design phase of system developed as a guide, the integration test was carried out. All the errors found in the system were corrected for the next testing steps. Validation Testing In validation testing the requirements established as part of software requirement analysis are validated against the software that has been constructed. Validation testing provides the final assurance that software meets all functional, behavioral and performance requirements. After the project was made from all the logical and interface errors, the project is input with dummy data to ensure that the software developed satisfied all the requirements of the user. In this project, validation testing is done with all the forms. All forms were validated completely. In case of email ids, entered according to the format and chunk size should contain only numeric values. The validation checking also includes boundary checking for various fields. System Testing System testing is actually a series of different tests whose primary purpose is to fully exercise the computer- based system. Although each test has different purpose, all work to verify that system elements have been properly integrated and perform allocated functions. User Acceptance Testing User acceptance testing of a system is a key factor for the success of any system. The System under consideration is tested for user acceptance by constantly keeping in touch with the prospective system users at time of developing and making changes whenever required. Test results emphasize how the actual results differ from the expected results. This suggests the need for re-testing, and to discover the source of differences. The test phase of systems development process involves defining the criteria by which the system will be tested and measuring the criteria against the acceptance failure rate. Errors detected during the development are corrected and re-tested. Each input, output and process are tested to verify that it performs as specified in design. The test data included illegal as well as out of range of data .It is found that the system is able to handle all the possibilities. The units in the system are re-compiled and errors found are corrected as indicated by the compiler. The tests are repeated until all known errors are eliminated and the program matched the design specifications. Separate tests are performed to ensure that program units are properly interfaced with each other to form a complete system.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 56

Gateway

SYSTEM IMPLEMENTATION

7. SYSTEM IMPLEMENTATION
B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 57

Gateway

Implementation is the process in which the working product is installed at the client site and configured and customized to its operational environment. Implementation is less creative than software design, but it may tend to be the source of new bugs if procedures arent followed strictly. Utmost patience and very good technical are a must for the Application Developer. Implementation procedure normally begins with preparing the target machine/s. The risk of crashes and failures can be reduced to the bare minimum if the correct system configurations are strictly enforced. Implementation stages involves following tasks: Careful planning. Investigation of system and constraints. Design of methods to achieve the changeover Evaluation of changeover method. Training of the staff in changeover phase. The method of implementation and the time scale to be adopted are found out initially. Next the system is tested properly and the same time users are trained in new environment. Implementation Procedure: Implementation of software refers to the final installation of the package in its real environment, to the satisfaction of intended users and operation of the system. In the initial stage, the doubt about the software but have to ensure that the resistance does not built up, as one has to make sure that Active user must be aware of benefits of using a new system Their confidence in software is built-up Proper guidance is imparted to the user so that he is comfortable in using that system Periodical changes must be adapted in to the system to make customers always using the system

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 58

Gateway

SYSTEM MAINTENANCE

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 59

Gateway

8. SYSTEM MAINTENANCE
It is impossible to produce systems of any size which do not need to be changed. Over the lifetime of a system, its original requirements will be modified to reflect the changing user. After implementation, maintenance is the important process. Usually once the system is implemented, the software developers and customer would sign a contract. According to the time mentioned in the contract all errors and requirements would be done free of cost. Once the maintenance period is over all the logical errors will be corrected free of cost were as all extra requirements would be charged. During the contract period we would frequently visit the site where the system is implemented and check the system performance such as response time and also how it works at peak hours. If any problem is found it is corrected. Software development does not freeze at the moment of delivery. Usually, software must grow and change over time. These activities are collectively referred to as software maintenance. Application updates are part of normal maintenance phase of development life cycle. A modification effort is actually a small project and must proceed through all the phases of development process. There are many reasons for software modification and continued development after the first release. Application may need additional features not discovered during the original analysis and design. Ease if maintenance is a part of every step in development. If the analysis is complete, users will find the most important features in the first release of software. If the design and coding is done perfectly, then it will be very easy to maintain later. Some of the suggestions are group the changes and deliver another release rather than incremental changes, so that it will force to be more through about new researches. Give more priority to small requirements. The four types of maintenance activities are listed below. Corrective Maintenance: This is concerned with fixing reported errors in the software. Coding errors are relatively cheap to correct; design errors are ore expensive as they may involve the rewriting of several program components. Requirements errors are the most expensive to repair because of the extensive system redesign which may be necessary. Adaptive Maintenance: Adaptive maintenance means changing the software to some new environment such as different hardware platform or for use with different operating system. The software functionality does not radically change. Any system that involve JVM can run this software. Perfective Maintenance: This involves implementing a new functional or non functional system requirement. These are generated by software consumers as their organization or business changes. Preventive Maintenance: This occurs when software is changed to improve future maintainability or reliability or to provide a better basis for future enhancements. In the current project, all the above maintenances were implemented.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 60

Gateway

SYSTEM SECURITY

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 61

Gateway

9. SYSTEM SECURITY
This software provides some security features. Before using any of the features in software, the user has to authenticate him by providing the appropriate username and password. Securities are provided in the software so that data remains confidential. Password facility is implemented to avoid unauthorized access. For providing more security he has to change his password for the login section. In this software ,only the administrator can change the settings. The user has no power to change the settings.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 62

Gateway

UPGRADABILITY

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 63

Gateway

10. UPGRADABILITY
Although all the design objectives were met, the scope for future enhancement does exist. Changes may be required to bring about improvements and may arise as part of normal running of SMPP Gateway SMPP Gateway is highly scalable in terms of functionality and performance. Any number of functions that enhance the user experience or increase usefulness can be added to SMPP Gateway. Some very good enhancements along with their relevant beneficiaries are given below. We can upgrade the sms format to mms format in future so that multimedia messages can be forwarded. We can also add web interface for the server for the client remote client registration and client interaction with experts.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 64

Gateway

CONCLUSION

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 65

Gateway

11. CONCLUSION
This page is meant for the technology conclusions of the project report. In the former pages, all details about the development of software have been explained. SMPP gateway is powerful server for sending a text message with or without using a mobile (cell) phone. Specifically, it is a device or service offering SMS transit; transforming messages to mobile network traffic from other media, or vice versa, allowing transmission or receipt of SMS messages with or without the use of a mobile phone. It empowers developers through a rich, flexible, modern development environment for creating secure, high performance communication applications. It pays utmost importance to reliability so it uses connection oriented services.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 66

Gateway

APPENDIX

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 67

Gateway

12. APPENDIX
12.1 FORMS LAYOUT Admin Login

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 68

Gateway

SMPP Interface

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 69

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 70 ServerManagement

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 71

Gateway

SMSC Management

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 72

Gateway

User Management

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 73

Gateway

Message Details

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 74

Gateway

SMSC configuration

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 75

Gateway

SMSC Update

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 76

Gateway

User Registration

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 77

Gateway

Client Login

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 78

Gateway

Client Message Interface

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 79

Gateway

12.2 REPORT LAYOUT SMSC Details

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 80

Gateway

User Details

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 81

Gateway

Message Details

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 82

Gateway

12.3 MEETING MINUTES MINUTES Date : 22-11-2010 Time : 10 am Location : Helion Software Systems, Anchal Group Members: ANU MOHAN DEEPUMON M.S YESWANTH .M.G We decide to do a project named SMPP Gateway. Our proposed project is to create a message gateway. We use Java (JDK 1.6) as front end and My SQl Server 5.0 as back end. System study and analysis is done between 22-11-2010 to 30-11-2010. MINUTES Date : 01-12-2010 Time : 10 am Location : Helion Software Systems, Anchal Group Members: ANU MOHAN DEEPUMON M.S YESWANTH .M.G Our project contain many forms such as user forms, admin level forms ,We create all these forms in between 01-12-2010 to 06-12-2010 MINUTES Date : 17-12-2010 Time : 10 am Location : Helion Software Systems, Anchal Group Members: ANU MOHAN DEEPUMON M.S YESWANTH .M.G B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 83

Gateway

Since the form design is over we decide to done table creation and code design .We decided to create table in My SQL, and then table connected to the front end. These works is completed on 22-12-2010. MINUTES Date Time Location : 23-12-2010. : 10 am : Helion Software Systems, Anchal

Group Members: ANU MOHAN DEEPUMON M.S YESWANTH .M.G After 75% of the code design is over we decide to test the code and the testing is completed on 28-12-2010. MINUTES Date : 29-12-2010 Time : 10 am Location : Helion Software Systems, Anchal Group Members: ANU MOHAN DEEPUMON M.S YESWANTH .M.G Since the code design and testing our project work is completed. Then the next step is document preparation. It was also completed in 31-12-2010.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 84

Gateway

12.4 GANTT CHART Task System Study and Analysis Form design Coding&Table creation Testing Documentation Start(dd/mm/yy) 22-11-2010 01-12-2010 17-12-2010 23-12-2010. 29-12-2010 End(dd/mm/yy) 30-11-2010. 06-12-2010 22-12-2010. 28-12-2010. 31-12-2010.

Nov 22

Dec 1

Dec 17

Dec 23

Dec 29

Dec 31

System Analysis

Form design Coding &Table creation Testing

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 85

Gateway

Documentation

BIBILOGRAPHY

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 86

Gateway

13. BIBILOGRAPHY
Books: SMPP Protocol Specification v3.4:SMPP Deveopers Forum. Software Engineering By Roger S Pressman. System Analysis and Design By Elias M Awad. Deitel, Harvey, Complete Java 2 Training Course Package, 5th Edition, Prentice Hall, Inc.2003. Horstmann, Cay, Java Concepts, 4th Edition, John Wiley & Sons, Inc.2005. Herbert Schildt, Java-The Complete Reference, 5th Edition, Tata McGraw-Hill, 2005. Tim Boudreau, Jesse Glick, Simeon Greene, Vaughn Spurlin, JackJ.Woehr, NetBeans-The Definitive Guide, 1 st Edition, OReilly Publication, 2002. Web Sites: www.java.sun.com/docs/books/tutorial/ www.netbeans.org/ www.google.com/logica smpp.

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 87

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 88

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

SMPP 89

Gateway

B.Sc Computer Science, UIT, Yeroor, 2008-2011

You might also like