Posts

Showing posts from March, 2019

Need of Web Services

There are many advantages of using web services. The main advantage over a regular HTTP  application is that it uses SOAP messaging which is much more efficient and less bandwidth costly. Another advantage is that Service Transport, XML  Messaging, Service Description, and Service Discovery layers use a standard protocol which makes it easy for developers to develop functionality irrespective of programming languages. Suppose you are a provider of a service, say weather forecast. Why make developers, go to your website , scrap  your page and then extract the data that they need? Wouldn't it be easier to develop this by web service  that a developer can pass in a date and get back a well defined XML  document containing all the info they need? The same happens for all type of cases... We use web services because: Exposing the existing function on to network: A Web service is a unit of managed code that can be remotely in...

Differences of Web Applications and Web Services

Web Applications A web application is a software application that a user runs in the web browser. It have the following features. It has a User Interface Runs in Client-Server environment Client runs it with the help of a web browser Server process the data based on client request and provide response Web Services A web service is an Application Program Interface (API) that runs on the server, which provides data to the client over HTTP through a standardized messaging system. (XML, JSON, etc...). Web services are further classified into SOAP  and REST . In the present day scenario, most services prefer REST over SOAP . Example: GitHub PayPal Facebook Twitter

Distributed systems and Distributed computing

Distributed computing  is a field of computer science that studies distributed systems . A  distributed system  is a  system  whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another. A  distributed system  is a network that consists of autonomous computers that are connected using a  distribution  middleware. They help in sharing different resources and capabilities to provide users with a single and integrated coherent network A distributed system allows resource sharing, including software by systems connected to the network. Examples of distributed systems/applications of distributed computing: Intranets, Internet, WWW, email. The key goals of a distributed system include Transparency: Achieving the image of a single system image without concealing the details of the location, access, migration, concurrency, failure,...

Build Tools in Software Development

Build tools are programs that automate the creation of executable applications from source code(eg. .apk for android app). Building incorporates compiling, linking and packaging the code into a usable or executable form. Basically build automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities like: Downloading dependencies. Compiling source code into binary code. Packaging that binary code. Running tests. Deployment to production systems. We use build tools or build automation for, In small projects, developers will often manually invoke the build process. This is not practical for larger projects, where it is very hard to keep track of what needs to be built, in what sequence and what dependencies there are in the building process. Using an automation tool allows the build process to be more consistent. Many build tools are available to use(Some of them): Invoke Invoke is a Python (2.6...

Dependency/package management tools in software development

Dependency Management is used to pull all the dependency information into a common POM file, simplifying the references in the child POM file. It becomes useful when you have multiple attributes that you don’t want to retype in under multiple children projects. Finally, dependency Management can be used to define a standard version of an artifact to use across multiple projects. Managing your dependencies manually in any programming language is a huge pain. This is why in most programming languages today you will find that they all have some implementation of a dependency management system or sometimes a package manager.  There some management tools bellow here, NuGet NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers. When you use NuGet to install a package, it copies t...

Importance of maintaining the quality of code

There are many advantages to maintaining the quality of code. Enhanced Efficiency It is often seen that the software developers spend a larger part of their time in solving those issues that could have been prevented. Implementing the coding standards would help the team to detect the problems early or even prevent them completely. This will increase the efficiency throughout the software process. Risk of project failure is reduced Many times it happens that IT projects fail due to problems while developing software.  Implementing the coding standards reduces many problems and the risk of project failures. Minimal Complexity If a code is complex, there are higher chances of it being vulnerable to errors. Coding standards help in the development of software programs that are less complex and thereby reduce the errors. Easy Maintain If the coding standards are followed, the code is consistent and can be easily maintained. This is because anyone can understa...

Tools to maintain the code quality.

To maintain code quality we use code review tools. There are many tools to all programming languages. Veracode Veracode is a static analysis tool which is built on the SaaS model. This tool is mainly used to analyze the code from a Security point of view. RIPS Technologies RIPS is the only code analysis solution that performs language-specific security analysis. It detects the most complex security vulnerabilities deeply nested within the source code that no other tools are able to find. It supports major frameworks, SDLC integration, relevant industry standards and can be deployed as a self-hosted software or used as software-as-a-service. With its high accuracy and no false positive noise, RIPS is the ideal choice for analyzing Java and PHP applications PVS - Studio PVS-Studio is a tool for detecting bugs and security weaknesses in the source code of programs, written in C, C++, C#, and Java. It works in Windows, Linux, and macOS environment. It is possible to integrate...