KEMBAR78
Week 2 IPT | PDF | Internet Of Things | Web Development
0% found this document useful (0 votes)
3 views9 pages

Week 2 IPT

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views9 pages

Week 2 IPT

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 9

Republic of the Philippines

NUEVA VIZCAYA STATE UNIVERSITY Bambang,


Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
COLLEGE OF INDUSTRIAL TECHNOLOGY
Bachelor of Science in Computer Science

Elective 3: Integrative Programming and Technologies 2

Lesson 1: Introduction
Definition: Integration of software refers to techniques for combining existing software
components to form a complete system. However, the software integration includes at least one
existing software system, developed in the past with no plan for its symmetric integration with
another component in the future.
Integrative programming deals with an integration approaches and techniques that connect
different components of IT infrastructure- people, applications, platforms and databases to
enable a secure, intra and inter application collaboration. Integrative solutions enable an
organization to integrate business processes internally and externally with business partners to
create dynamic environments that supports current and evolving business requirements,
thereby creating a global organization.
Application integration assists in unlimited sharing of data and business processes among any
connected applications or data sources in without making major changes to the applications or
data structures. Hence, integration is the process of connecting multiple, independently
developed applications using incompatible technologies into a single organization wide system
with information flowing seamlessly among the integrated systems or components.
Most of the applications that run-in organizations hardly live in isolation. Whether the registrar
application must interface with the finance application, the human resource management
application must connect to each other, it seems like any application can be made better by
integrating it with other applications.
Integration of multiple, independently developed, managed and maintained applications
components that may normally use incompatible technologies and heterogeneous platforms”
enables transmission of information between applications, automates flow of data between
applications that make up the business process flow. Integration is the process of combining
separate applications into cooperating collections of application.

Overview of inter system communication


Inter-system communication is the communication between a set of heterogeneous systems that
are integrated together. These integrated systems which put together many heterogeneous sets
of subsystems and the produced objects are extremely different, yet should contribute to the
same process. Software integration includes one or more of the following.

▪ System integration
Given two or more systems, subsystems or components, each of which function properly
(satisfying their requirement within their environment). The problem is to integrate them into one
larger system satisfying the combined requirements within the newly formed environment.

▪ Functional integration or technology integration


Given a software system, this may have been functioning properly in the field for a significant
period. The problem is to integrate a new function or a new technology within the system. The
integrated system should provide the new functionality or use the new technology, while
preserving the original system functionality.
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
▪ Incremental engineering
A software system can be developed and delivered using available technologies and with less
functionality than it is intended to finally provide. New technologies and or more functions then
can be integrated within the system. The problem is to design the system with such future
integration in mind.

▪ Modification
Sometimes an existing and properly functioning software system must be decomposed and
integrated to carry out modification.
Most of organizations consist of more than one department, running department specific
applications and those applications interact with each other to achieve the overall objective of
the organizations.

The need for integration


Information systems change overtime by growing in their size, incorporating functionality of the
existing standalone systems. Applications originally intended to operate separately, later on are
required to interoperate with others. Some of the reasons for integration are the following;

▪ Technology change affects all layers; legacy does not go away so easily.
▪ The architecture of the organization information system depends on constraints related to the
technology but also to the organization.
▪ Within an enterprise, each department may have its own IT infrastructure, systems and
databases which are maintained independently. Integrating them may bring additional value to
the company.
▪ Integration assists in formation of Zero Latency organization - when all functions within the
organization work with the same up-to-date information, latency between applications is
eliminated/ reduced.
▪ Updating and integrating of applications is possible whenever required. New applications can
be created by integrating real time data from different parts of the enterprise
A key decision is which method of the four different methods of installation will be chosen,
these are:

1. Direct

2. Parallel

3. Phased

4. Pilot
Direct method: (or “plunge”) is where the company literally switches off the old system and
switches on the new one. This is probably the most straightforward method but is also
probably the riskiest.
Parallel method: is a more popular method than the previous one. With a parallel changeover
the organization runs both the old and new system in parallel for a time, then once the
organization is sure that the new system is working properly and that staff are ready to begin
using it, they will make the decision to completely change over.
During a quiet period, perhaps during the night or at a weekend, the data is fully transferred
from the old system which is then shut down.
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
Phased Changeover: is considered a compromise between parallel and direct changeovers. In
a phased changeover, the new system is implemented one stage at a time.
Pilot Changeover: the new system is tried out at a test site before launching it company-wide.
For example, a bank may first test the system at one of its branches, and this branch is referred
to as the pilot, or beta, site for the program.
Since parallel changeovers tend to be expensive, using the pilot changeover technique allows
companies to run the new system next to their old but on a much smaller scale. This makes the
pilot changeover method much more cost-effective

Lesson 2: Integration models


Integration model defines how applications will be integrated by defining the nature of and
mechanisms for integration. Some of the methods used for application integration are discussed
in the following section. These models include;

▪ Presentation integration

▪ Data integration and

▪ Function integration
1) Presentation integration model allows the integration of new software through the
existing presentations of the legacy software. This is typically used to create a new user
interface but may be used to integrate with other applications.
2) Data integration model allows the integration of software through access to the data that
is created, managed and stored by the software typically for the purposes of reusing or
synchronizing data across applications.
3) Functional integration model allows the integration of software for the purpose of
invoking existing functionality from other new or existing applications. The integration is done
through interfaces to the software.

Fundamental Challenges of Integration


To support common business processes and data sharing across applications, these
applications need to be integrated. Application integration needs to provide efficient, reliable and
secure data exchange between multiple enterprises applications.
A lot of the problems to be addressed in Organizations Application Integration system from
having to integrate standalone applications which have been developed independently, operate
autonomously, and were not originally indented to be integrated with one another.
Integration of applications, developed by different languages and running on different computing
platforms is not an easy task. By definition, integration has to deal with multiple applications
running on multiple platforms in different locations, making the term ‘simple integration’ pretty
much difficult. Software vendors offer application integration suites that provide cross-platform,
cross-language integration as well as the ability to interface with many popular packaged
business applications. However, this technical infrastructure presents only a small portion of the
integration complexities. The true challenges of integration span far across business and
technical issues. All integration solutions have to deal with a few fundamental challenges: some
of the challenges of integration are;

▪ Network unreliability

▪ Distributed systems

▪ Slow networks and


Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
▪ Heterogeneity

▪ Modification complexity
1) Network is unreliable. Integration solutions have to transport data from one computer to
another across networks. Compared to a process running on a single computer, distributed
computing has to be prepared to deal with a much larger set of possible problems. Often times,
two systems to be integrated are separated by continents and data between them has to travel
through phonelines, LAN segments, routers, switches, public networks, and satellite links. Each
of these steps can cause delays or interruptions.
2) Distributed– in the worst case, every application runs on a completely separate
environment, e.g., database storage is not shared among applications. Message- based
communication is the only possibility to exchange information.
3) Networks are slow. Sending data across a network is multiple orders of magnitude
slower than making a local method call. Designing a widely distributed solution the same way
you would approach a single application could have disastrous performance implications.
4) Any two applications are different. Integration solutions need to transmit information
between systems that use different programming languages, operating platforms, and data
formats. An integration solution needs to be able to interface with all these different
technologies. Heterogeneous– each application implements its own data model. Concepts may
be shared, but representation mismatches are to be expected. Mappings and transformations
are required.
Change is inevitable. Applications change over time. An integration solution has to keep pace
with changes in the applications it connects. Integration solutions can easily get caught in an
avalanche effect of changes – if one system changes, all other systems may be affected. An
integration solution needs to minimize the dependencies from one system to another by using
loose coupling between applications. Autonomous –applications update their state
independently without coordinating with each other. The systems to be integrated are
maintained independently and upgraded at different times.

Lesson 3: Integrative Technologies/methods for integration


Application integration is an integration framework composed of a collection of technologies and
services which form a middleware or "middleware framework" to enable integration of systems
and applications across organizations. There are four methods used in application integration,
which are discussed in the section below
1) File Transfer — one application writes a file that another later reads. The applications
need to agree on the filename and location, the format of the file, the timing of when it will be
written and read, and who will delete the file.
2) Shared Database — multiple applications share the same database schema, located in
a single physical database. Because there is no duplicate data storage, no data has to be
transferred from one application to the other.
3) Remote Procedure Invocation— one application exposes some of its functionality so that
it can be accessed remotely by other applications as a remote procedure. The communication
occurs real-time and synchronously.
4) Messaging — one application publishes a message to a common message channel.
Other applications can read the message from the channel at a later time. The applications
must agree on a channel as well as the format of the message. The communication is
asynchronous. All of the four approaches solve essentially the same problem in integration;
each style has its distinct advantages and disadvantages. In fact, applications may integrate
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
using multiple styles such that each point of integration takes advantage of the style that suits it
best.

File transfer
An organization naturally, runs multiple applications that are being built independently, with
different languages and platforms. How can we integrate multiple applications so that they work
together and can exchange information and interact with each other? The answer for this
question is given below;
One of the possible solutions to allow these applications to be integrated is allowing each
application produce files containing information that other applications need to consume.
Integrators take the responsibility of transforming files into different formats. Produce the files at
regular intervals according to the nature of the business, which can be consumed or read by
another file.
An important decision with files is what format to use. Very rarely will the output of one
application be exactly what's needed for another, so you'll have to do a fair bit of processing of
files along the way. Not just do all the applications that use a file have to read it, you also have
to be able to use processing tools on it.

Shared Database
An organization naturally, runs multiple applications that are being built independently, with
different languages and platforms. How can we integrate multiple applications so that they work
together and can exchange information and interact with each other? The answer for this
question is given below;
One of the possible solutions to allow these applications to be integrated is allowing each
application produce files containing information that other applications need to consume.
Integrators take the responsibility of transforming files into different formats. Produce the files at
regular intervals according to the nature of the business, which can be consumed or read by
another file.
An important decision with files is what format to use. Very rarely will the output of one
application be exactly what's needed for another, so you'll have to do a fair bit of processing of
files along the way. Not just do all the applications that use a file have to read it, you also have
to be able to use processing tools on it.

Remote procedure calls


This method develops each application which is required to be integrated as a large- scale
object or component with encapsulated data. And it provides an interface to allow other
applications to interact with the running application.
Remote Procedure Invocation applies the principle of encapsulation to integrating applications. If
an application needs some information that is owned by another application, it asks that
application directly. If one application needs to modify the data of another, then it does so by
making a call to the other application. Each application can maintain the integrity of the data it
owns. Furthermore, each application can alter its internal data without having every other
application be affected.

Messaging
Messaging allows interaction between applications possible. Message passing can be used to
transfer packets of data frequently, immediately, reliably, and asynchronously, or synchronously
using customizable formats.
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
Asynchronous messaging is fundamentally a practical reaction to the problems of distributed
systems. Sending a message does not require both systems to be up and ready at the same
time. Furthermore, thinking about the communication in an asynchronous manner forces
developer to recognize that working with a remote application is slower, which encourages
design of components with high cohesion (lots of work locally) and low adhesion (selective work
remotely).
The reason a messaging system is needed to move messages from one computer to another is
that computers and the networks that connect them are inherently unreliable. Just because one
application is ready to send a communication does not mean that the other application is ready
to receive it. Even if both applications are ready, the network may not be working, or may fail to
transmit the data properly. A messaging system overcomes these limitations by repeatedly trying
to transmit the message until it succeeds. Under ideal circumstances, the message is
transmitted successfully on the first try, but circumstances are often not ideal.

In essence, a message is transmitted in five steps:

1) Create— the sender creates the message and populates it with data.

2) Send — the sender adds the message to a channel.


3) Deliver — the messaging system moves the message from the sender’s computer to the
receiver’s computer, making it available to the receiver.

4) Receive — the receiver reads the message from the channel.

5) Process — the receiver extracts the data from the message.

Core Concepts of Integrative Programming:


1. Interoperability: The ability of different software systems to communicate and interact
effectively. Integrative programming ensures that disparate systems can exchange data and
trigger actions.
2. Data Integration: The process of combining data from various sources into a unified
view, allowing for comprehensive analysis and decision-making.
3. API (Application Programming Interface): APIs provide a standardized way for
different software components to interact. They define the methods and data formats that
developers can use to access and manipulate services or functions offered by a system.
4. Middleware: Middleware is software that acts as an intermediary between different
applications or components, facilitating communication and data exchange. It plays a crucial
role in integrative programming.
5. Integration Patterns: These are design solutions and best practices for solving common
integration challenges. Examples include microservices, Enterprise Service Bus (ESB), and
RESTful APIs.

Role of APIs in Integrative Programming:


APIs play a central role in integrative programming by providing a well-defined interface through
which software components can interact. Here's how APIs contribute to integrative
programming:
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
1. Standardization: APIs define a set of rules and protocols that ensure consistent and
standardized communication between software components. This standardization simplifies
integration efforts.
2. Abstraction: APIs abstract the underlying complexity of systems. Developers can
interact with APIs without needing to understand the internal workings of the integrated
systems, making integration more manageable.
3. Data Exchange: APIs facilitate the exchange of data and functionality between different
components, allowing them to work together cohesively.
4. Security: APIs often include authentication and authorization mechanisms to control
access to sensitive data and functions, ensuring security in integrative programming.

Common Integration Patterns:

1. Microservices: In this pattern, an application is divided into small, independent services that
communicate through APIs. Microservices allow for flexibility, scalability, and the ability to update
and deploy individual components without affecting the entire system.
2. Enterprise Service Bus (ESB): ESB is a middleware architecture that facilitates
communication between different applications by routing and transforming data between
them. It acts as a centralized hub for integrating various services.
3. RESTful APIs: Representational State Transfer (REST) is an architectural style that uses
HTTP requests for data exchange. RESTful APIs are commonly used in web development
and enable simple and scalable integration.

Examples of Integrative Programming in Different Domains:


1. Web Development: In e-commerce, integrative programming allows online stores to
connect with payment gateways, shipping services, and inventory management systems. This
ensures that product availability, pricing, and payment processing are synchronized in real-time.
2. Mobile Apps: Mobile apps often integrate with external services like social media
platforms, location services, and cloud storage to enhance functionality. For example, a weather
app can integrate with a mapping service to provide real-time weather updates for a user's
location.
3. IoT (Internet of Things): In IoT, integrative programming enables devices to
communicate with central control systems and cloud platforms. For instance, a smart home
system integrates various IoT devices like thermostats, lights, and security cameras, allowing
users to control them through a unified interface. Integrative programming is pervasive across
software development domains, and its principles and techniques are instrumental in creating
robust, interconnected software systems that meet the demands of modern technology and user
expectations.

Importance of Integrative Coding in Modern Software Development


The adoption of integrative coding has become crucial in modern software development for
several reasons:
1. Specialization and Efficiency: Different programming languages and technologies
excel in specific domains. Integrative coding allows developers to choose the most appropriate
tools for each task, increasing efficiency and code quality.
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
2. Scalability and Flexibility: Integrative systems are inherently modular, making it easier
to scale and adapt software as requirements evolve. New features or improvements can be
implemented without extensive rewrites.
3. Reuse and Interoperability: Integrative programming promotes code reuse by enabling
the integration of existing libraries, modules, and services. This reduces development time and
minimizes the risk of errors.
4. Ecosystem Diversity: The software development landscape is rich with diverse
technologies and tools. Integrative coding embraces this diversity, harnessing the full potential
of the everexpanding technology ecosystem.
5. Cross-Platform Compatibility: Integrative systems can run on various platforms and
environments, enhancing cross-compatibility and ensuring a broader reach for software
applications.

Integrative programming finds applications in various domains, including:

• Business: Integrating enterprise systems, CRM, and ERP for streamlined operations.

• Healthcare: Interconnecting electronic health records for improved patient care.

• IoT: Integrating IoT devices for data analysis and automation.

• Finance: Integrating financial systems for real-time risk analysis and decision-making.

• Entertainment: Integrating multimedia platforms for a seamless user experience.

Challenges Faced in Software Development Due to Isolated Systems and Lack of


Integration:
1. Data Silos: Isolated systems often lead to data silos, where information is trapped within
individual applications or departments. This fragmentation can hinder decision-making, as a
comprehensive view of data is lacking.
2. Inefficiency: Isolated systems can result in redundant tasks and manual data entry as
information needs to be duplicated across multiple systems. This inefficiency can lead to
increased operational costs and errors.
3. Limited Functionality: Isolated systems may lack the ability to leverage external
services or data sources, limiting their functionality and potential for innovation.
4. Poor User Experience: Users often need to navigate between multiple applications with
different interfaces and logins, creating a disjointed and frustrating experience.

Importance of Integrative Programming as a Key Driver of Technological Advancement


Integrative programming stands as a fundamental pillar of technological advancement, driving
innovation and enabling systems to work seamlessly together. Its significance lies in its ability to
orchestrate complex interactions, facilitate interoperability, and enhance the overall efficiency
and functionality of modern software and technology ecosystems. Here's an in-depth look at
why integrative programming is pivotal for technological progress:

1. Seamlessly Connecting Disparate Systems:


- In today's technological landscape, systems, services, and devices often come from
different vendors and utilize a variety of technologies and protocols. Integrative programming
bridges these gaps, allowing these disparate components to communicate effectively.
Republic of the Philippines
NUEVA VIZCAYA STATE UNIVERSITY Bambang,
Nueva Vizcaya
COURSE MODULE
CM No.: ITPEC3-2024-2025
- For example, consider a smartphone that seamlessly connects to a wireless headset, a
smart home automation system, and cloud-based services. Integrative programming ensures
that these diverse components can interact smoothly, enhancing user experience.

2. Enhancing Interoperability:
- Integrative programming promotes interoperability, which is the ability of different
systems to work together seamlessly. This is crucial as it prevents technology silos and fosters
collaboration among various technologies.
- Interoperability enables businesses and individuals to choose the best-in-class tools and
technologies for their needs, knowing that these tools can integrate with their existing systems.
- For instance, in the business world, integrative programming allows enterprise resource
planning (ERP) systems to integrate with customer relationship management (CRM) software,
ensuring that sales, finance, and customer data can be accessed and utilized together.

3. Improving Efficiency and Productivity:


- Integrative programming optimizes processes and workflows, leading to increased
efficiency. When systems can seamlessly exchange data and trigger actions, manual
interventions are minimized, reducing errors and streamlining operations.
- Consider a manufacturing plant where integrative programming connects machines,
sensors, and inventory management systems. This integration allows for real-time monitoring of
production, automated replenishment of raw materials, and timely maintenance, leading to
higher productivity.

4. Enabling Cross-Platform Compatibility:


- Integrative programming ensures that software and applications can run across different
platforms and devices, including mobile, desktop, web, and cloud. This cross-platform
compatibility is essential for reaching a broad user base.
- A prime example is web development, where integrative programming techniques like
RESTful APIs enable web applications to interact with various back-end services, regardless of
the technology stack they are built on.

5. Facilitating Innovation and Scalability:


- Integrative programming empowers developers to build on existing technologies and
services, accelerating the development of new applications and solutions.
- It also supports scalability by enabling systems to grow and adapt to changing demands.
Cloud computing platforms, for instance, leverage integrative programming to dynamically
allocate resources, ensuring applications can handle increased traffic during peak times.

6. Enhancing User Experiences:


- Integrative programming contributes to seamless and intuitive user experiences. When
systems work together cohesively, users can enjoy a more integrated and feature-rich
experience.
- Think of smart homes where integrative programming enables users to control lighting,
heating, security, and entertainment systems through a single interface, enhancing convenience
and comfort.

You might also like