Data Protection And Data Flow

Data protection is important for certain sectors like the banking industry, the finance industry, and the healthcare industry. Recently the data protection bill passed for the year 2018 says the following guidelines for the sensitive data protection. The personal data of Indian citizen should be saved in a server located in India. The definition of the personal data should be defined by the government and the law imposes the transparency and accountability of the data.

The DPA fix the criteria for the data protection after reviewing some of the information like the volume of the personal data, the degree of sensitivity in the data as per the information from the authority, turnover from the data, use of the technologies over the data, and other data which cause harm to the personal data.

Data flow and Data localization

Google CEO Sundar Pichai also said that the “data flows encourage the startup companies to get the global presence and the global companies to participate in the Indian digital economy”. Many big companies and small companies support the data flow and the data localization.

Data war in different industries

As a part of the initiative to welcome the new law, Microsoft India launched the free online course to give detailed information regarding the data compliance and basics of GDPR. Even the banking and insurance industries are moving to the blockchain to support the data localization and data flow in India.

Principles to be followed for the personal data

  1. As per the data protection Act, the common data like names, addresses, e-mails, telephone numbers, bank and credit card details, and health information are sensitive data which has to be protected.
  2. The data should be used in specific ways.
  3. The sensitive data are used only for a specific period of time.
  4. The personal data are used in relevant ways.
  5. These sensitive data are kept safe with the required security measures.
  6. The stored information as personal data should be relevant.
  7. There should be openness in the personal data.
  8. Personal data should be collected with a purpose. The data is collected for specific reasons and to take up specific functions.
  9. The personal data should be adequate in numbers.
  10. The data protection rule is applicable to all the businesses dealing with the personal data.
  11. The corporate body collects the personal data only for the lawful function and the collected information is shared with the government agencies for security purposes.
  12. The government agencies should not share the information received to any unknown person.
  13. The personal data and the biometric data collected from the individuals are maintained by the government agencies.

Importance Of Productivity In The Software Industry

The mantra of software engineers is the productivity and quality. Tracking the metrics are important for any software company. The productivity is tied to the business goal which drives the software professionals to achieve their target.

Reasons to improve the productivity in the software industry

  1. The results are analyzed to determine which methodology is suitable for the software development
  2. The tools are analyzed to improve productivity, to decide the team size for every project work
  3. The costs involved in the project are compared for minimizing the cost
  4. To compete with competitors productivity is important and ultimately productivity increases profitability.

Tips to improve productivity

  1. The work environment and team coordination are important to complete the given task within the given span of time. To systematize and improvise the software development many models are followed and team coordination leads to mutual support and increases the efficiency.
  2. The well-written code is self-documenting and it saves time as the project rolls and undergoes revision.
  3. Using white space in the coding help to read, review and understand the code. The source code explains clearly about the function and coding part.
  4. Use shorthand conditionals for the programming shortcuts.
  5. Version control help for overwriting and it improves the productivity in the software development lifecycle.
  6. Automation is used to bring quality and productivity in the software cycle. To compile the code or to migrate the data use the automation to improve the productivity.
  7. Scrum is the agile development framework which is used to implement complex coding projects.
  8. Learning through multiple projects and online materials or books is a good idea to improve productivity in the software industry.

The complex code is increasing the time of the software development. The learned methodologies are used to identify the productivity levels, quality in the product, pinpoint the bottlenecks in the development, recognize the underutilized resources, and evaluate the vendor supplied value. The programming languages are used for general purpose and used for the special domains and learning is the continuous job in the life of a programmer. Java, Objective C and dot net are some of the difficult programming languages where the companies gain huge profits. So, it is important for the software companies to improve productivity to achieve the targeted profit. Team coordination, documentation, automation and some of the advanced tools are used to improve the productivity in the software projects. So, those who want to enter into the software industry should be aware of the standards and the process in the software industry.

Software Architecture Design Implies The Quality of The Software

System or the software architecture is the base for any software in which the set of functions which are performed by the software is described and accordingly the design of the system varies for the different technologies. The system or the architecture should take in to account so many factors like the quality, performance, common problems, user requirements, and long-term maintenance. Let me discuss in detail about how the Software Architecture design implies the quality of the software?

If the common problems or the long-term maintenance are not considered when deciding the software architecture then it takes more time and more money from the business. The functional, non-functional, and online requirements are analyzed before deciding the architectural design or architectural system. The software architecture turns in to the different protocol between the components and this improves the speed and quality of the software.  In recent days, the technologies like the cloud technology and the IOT technology demand for the better architecture design for the better performance of the application.

The layered pattern for Java

The structure of the layer works as the subtask to the architecture. This architecture is suitable for the Java EE applications and the four layers communicate to the next higher layer. The presentation layer, business layer, persistence layer, and the database layer are used in different ways to get the desired result. For instance, the JSF is used as the customer delegate as the managed bean component, the customer object can be a local spring bean or a remote EJB3 bean and the data access objects can be implemented as simple POJO’s. This pattern aids to the flow of information which help the customer to retrieve the data with little or no logic. The presentation layer is known as the UI layer, the application layer is known as the service layer, the business logic layer is known as the domain layer, and the data access layer is known as the persistence layer to the desktop application or the E-commerce web applications.

Client and server pattern for Java

This pattern is used to connect the server to the multiple clients. The server provides the services to the client and also listens to the client’s requests after the provision. Java is used for the strong network connection and multi-task threads. Many servers like the commercial and the open source servers for the online applications like email, document sharing, and banking use the client-server pattern. Some of the examples of the server designed with this architecture are Tomcat, Jetty, Resin, and Caucho.

Micro-services and DevOps

Micro-services are easy to write and rewrite the pieces of the application. Small pieces of the application can be re-used for the multiple purposes and make the deployment process easy. Companies which use the agile methodology or DevOps architecture use the Micro-services architecture. The flexibility of deploying the micro-service applications in containers made the micro-service architecture famous. Micro-service architecture is easy to deploy, easy to migrate to the data centers or cloud services. Dockers swarm, Google-developed kubernetes, Apache mesos, and Zookeeper are the popular micro service applications which use the containerized environments.

Master-slave architecture and MySQL database

MYSQL database server is the master and it is copied to the MySQL database servers to read the database. It gives read access to the multiple servers and it is also used for the analysis and failover. The master is referred to as the authoritative source and the slave is synchronized to it. This is used for the database replication.

Broker pattern and the IOT

The Broker pattern is used for the IoT technology. The four models in IOT are the device to device communications, the device to gateway connections, gateway to data systems and between data systems in the data center or cloud. The components in the broker pattern communicate with the help of remote service invocations. The servers which work under the broker communicate about their services and characteristics to the broker which is the main server. Event subscription, asynchronous messaging, reliable messaging, multicasting, publish or subscribe, queues, message brokers, federation, and delegation of trust are some of the architecture used in the IOT technology.

Event-bus pattern and the android development

This design has four major components such as event source, event listener, and channel and event bus. The sources publish the messages and the listeners note the messages that are published in particular channels. Android is an event-driven application and conceptually the different entities or components subscribe to the event bus.

Conclusion

The four ways to identify the flaws in the software architecture are fundamental design principles, gaps in the security control, assess the attack, and analyze the threats. Review of the architecture is important for the development process of any software. Good architecture design improves the performance and the quality of the software.