You are on page 1of 17

1

1 | Integrative Programming & Technologies 2

UNIT 1
Intersystem Communications
 

1.0 Intended Learning Outcomes


a. Describe and contrast the different types of architectures for integrating
systems.
b. Define the role of DCOM, CORBA, and RMI in distributed processing.
c. Describe how web services are used to integrate disparate applications in an
organization: for example, describe the role of the WSDL, SOAP, and UDDI
architectures in creating and using web services.
d. Describe the role of socket programming in communicating between systems
and contrast the protocols and uses of TCP/IP sockets and Datagram sockets.
1.1. Introduction
In some senses, integration is about "breaking down silos" and helping
different software programs to communicate. Embedding an application in a greater
context can require specialized tools, such as application programming interfaces
(APIs), made specifically for the purpose of allowing this kind of integration. Cloud-
based architectures and other kinds of new options are becoming popular for use in
integration architectures.

Using tools like APIs, middleware and other resources, engineers cobble together
workable architectures that successfully integrate their many parts. When applied to
business, this is often called enterprise application integration, and is done to
support
key business goals.

Another way to think about integration architecture is as the "skeleton" of an IT


system or, as some experts call it, the "plumbing" of a system. There are different
methods, like point-to-point integration, and different "topologies" for integration
that make a difference in design.

C. M. D. Hamo-ay
2
1 | Integrative Programming & Technologies 2

1.2 Intersystem Communication

1.2.1 Architecture for integrating System

What is System Integration?

System Integration refers to the process by which multiple individual subsystems or sub-
components are combined into one all-encompassing larger system thereby allowing the
subsystems to function together. In other words, the symbiosis created through system
integration allows the main system to achieve the overarching functionality required by the
organisation.

In most organisations that use system integration there is a need to improve efficiency and
thereby productivity and quality of their operations. The objective is usually to get the
company’s various IT systems to communicate with each other in the background so as to
avoid the time and effort spent manually sharing information with other
departments/components of the organisation including upper management. Through
system integration, the organisation will experience increase in information flow speeds as
well as reduced operational costs.

Furthermore, system integration connects the organisation with third parties such as
suppliers, customers and shareholders. Each of which have their own unique interests in
information generated by your company. System integration allows suppliers keep track of
raw material levels, allows customers to keep track of finished goods inventory and
shareholders to view the company position at a glance in a dashboard style in real time. All
of these conditions can be met very simply through the use of system integration supplied
by a reliable systems integrator.

Three types of System Integration:

Given the zone of utilization and sort of utilization, integration administrations can be
separated into three classifications: 
1. Enterprise Application Integration (EAI)
2. Data Integration (DI)
3. Electronic Document Integration/Interchange (EDI)

Enterprise Application Integration (EAI) 

Enterprise Application Integration is a help based integration. It’s an interaction that speaks
with various administrations, assembles information and afterwards continues with
additional means dependent on wanted activity or a work process. The cycle can be set off
with uncovered help. 

Data Integration (DI) 

C. M. D. Hamo-ay
3
1 | Integrative Programming & Technologies 2

Various information bases and administrations for the board announcing or any child of
revealing. Get-together information from all city benefits, amassing and changing them into
focal spots for intuitive announcing.
 At the point when you need to merge your administrations into one main issue of access,
you need information integration. For the most part, there are loads of various information
sources (or data sets) and you need them in one spot of access, all merged. 

Electronic Document Integration/Interchange (EDI)

EDI (Electronic Document Integration/Interchange) is a central business to business


situated interaction. Its capacities are for the paperless trade of reports and electronic
regulations.

CRM Systems Vs ERP Systems – What’s the difference?

In very simple terms, a Customer Relationship Management (CRM) system helps organise,
manage and, at the end of the day, use customer data. A CRM is a form of system
integration that keeps your business up to date on each customer’s contact details,
transaction history, accounts as well as communication. In other words, your company’s
entire ‘relationship’ with customer is available at a glance and the primary objective of the
system is to help you improve sales.

Alternatively, an Enterprise Resource Planning (ERP) system is designed to manage any


and all business processes and automate various backend or back office functions that need
not be carried out manually. In many ways, it is the representation of the concept of system
integration. An ERP software typically integrates all aspects of operations which includes
product planning and development, procurement, vendor management, manufacturing,
sales and marketing, all in one database and user interface. The primary objective of an
ERP, much like system integration, is usually to lower costs rather than increase revenue.

What are the methods of system integration?

Determining an appropriate systems integration solution is not a simple task by any means.
You must select the correct subsystems, the correct locations and the correct nature of the
relationship. For this it is very important that you as a company understand exactly what
processes are involved, how they interact with all the stakeholders as well as the business
objectives. If you are clear about why and where the business requires harmony in
operations, the systems integration will go smoothly.

System Integration Method #1: Point-to-Point Integration

Point-to-Point integration / connection is not system integration in its truest sense. In that
the complexity of the functions that can be performed is limited despite the systems
functioning as a whole. Typically, such forms of systems integration handle one business
function at a time and are ideal for a 1:1 relationship. i.e. one system to another system. The

C. M. D. Hamo-ay
4
1 | Integrative Programming & Technologies 2

more the number of systems in play, the greater the number of connections and therefore, a
point-to-point systems integration quickly becomes unmanageable.

System Integration Method #2: Vertical Integration

Vertical systems integration differs from the other types of systems integration in the
structure that is formed. Basically each sub-system is linked to the other on the basis of how
closely they are related in the function that is performed. This leads to a ‘silo’ like structure
with the bottom being the most basic function and the rest getting progressively more
complex. This type of systems integration is fairly simple and involves a small number of
systems but on the other hand, this system integration model can be inflexible. Adding any
new functionality means adding its very own ‘silo’ which, in the long run, makes things
difficult to manage.

Let us consider for example that the Point-Of-Sale (POS) system tracks orders and records
sales transactions while another software generates the invoices. This is where the term
“silo” comes into play since the system is tightly integrated to serve a specific and narrowly
defined business function, holding the data in one place without coordinating with other
silos.

System Integration Method #3: Star Integration

Star integration is very simply a collection of point to point system integrations. In other
words, a larger set of simple connections come together to create a star connection. The

C. M. D. Hamo-ay
5
1 | Integrative Programming & Technologies 2

more the number of sub systems connected, the more the points on the start and
subsequently lines in between.

Furthermore, when this system integration method interconnects each system to the
remaining subsystems, the series of connections can look like a star polyhedron at the best
of times. More likely the actual diagram of the system integration will look like a plate of
spaghetti (hence star integration is also known as spaghetti integration). In other words, the
ideally neat and tidy IT infrastructure quickly becomes jumbled and difficult to map if a
company approaches system integration using this method. Because as you can imagine,
this will provide far more functionality than the individual point to point connection but
the management of the integrations becomes very demanding.

System Integration Method #4: Horizontal Integration

Horizontal integration refers to achieving systems integration using one specialised


subsystem as a common user interface layer which links all the other sub systems. In other
words, the number of connections necessary for system integration is reduced because the
subsystems are not interconnected directly, they are connected indirectly through the main
system. If there are five subsystems, then there will only be five connections. If there are ten
subsystems there will only be ten connections. Therefore, the primary advantage of this
method is the reduced number of connections necessary to maintain functionality which in
turn reduces time, effort and money spent building the system. This intermediary layer /
subsystem used in this form of systems integration is commonly known as an Enterprise
Service Bus (ESB).

Some of the most common examples of horizontal integration can be found in the
healthcare sector in achieving a simplified method for medical systems integration.
Furthermore, through a customized approach to development of the software, an ESB
integration interface can efficiently and effectively mesh with current, on premises systems.

C. M. D. Hamo-ay
6
1 | Integrative Programming & Technologies 2

Existing subsystems that are generating data or require data movement and integration will
only need to be linked to the ESB. In order to ease the transfer, transformation and
integration of data coming in from multiple sources, it would be a good idea to also
implement technology such as Electronic Data Interchange (EDI), Managed File Transfer
(MFT), and application connectors.

ADVANTAGES OF SYSTEM INTEGRATION 

The pros of system integration might be clear for some entrepreneurs. In any case, it’s
critical to comprehend the full picture. 

1. Expanded profitability 

The main benefit of system integration is that it supports the organization’s efficiency
massively. Working with various systems and projects takes up a significant measure of
time, compelling the representatives to zero in on tedious manual activities instead of on
projects within reach. 

2. Better administration and examination 

A high number of projects makes it intense to dissect just how an organization works.
Therefore, running various investigations for each program isn’t simply tedious, it’s
regularly pointless. 
You can’t look into such an examination; you need to sort out some way to get to a higher
perspective. With various projects working freely, it’s practically unthinkable. 

3. Lower cost 

The expense of keeping up various systems can be fairly high. Each program requires
certain support, which may be done on various occasions. Planning support and overhauls
can be tedious and exorbitant. Hours spent on all-out help may surpass the hours the whole
system is working. 

4. Improved consumer loyalty 

System integration permits you to accomplish better consumer loyalty by diminishing the
time you spend on giving your items and administrations. Whereas, working with different
systems and projects can take up a huge chunk of your time.

DISADVANTAGES OF SYSTEM INTEGRATION 

Even though system integration is by all accounts an astounding answer for some issues
identified with utilizing various software, it has a few disadvantages. 

1. Security problems

C. M. D. Hamo-ay
7
1 | Integrative Programming & Technologies 2

With regards to security matters, having a few projects is superior to one incorporated
system. When you go through system integration, any hack or misrepresentation could
gain admittance to the entirety of your information instead of one piece of it. 
System integration makes your data more defenceless than it used to because of the
channels through which information streams starting with one program then onto the next. 

2. Complex updating 

With regards to redesigning the system, your IT group is probably going to make some
extreme memories. Integration doesn’t transform a few projects into one, it simply
integrates them. Then, they actually should be overhauled independently. The interaction is
unpredictable and tedious. 

3. Significant expense 

Even though you can get a good deal on system support, you need to pay for each program
independently. Once in a while, costs are high to the point that an entrepreneur may begin
contemplating custom program advancement instead of system integration.

1.2.2 Programming Paradigms

A programming paradigm is a style, or “way,” of programming.

Some languages make it easy to write in some paradigms but not others.

Never use the phrase “programming  language  paradigm.”

A paradigm is a way of doing something (like programming), not a concrete thing


(like a language). Now, it’s true that if a programming language L happens to make
a particular programming paradigm P easy to express, then we often say “L is a P
language” (e.g. “Haskell is a functional programming language”) but that does not
mean there is any such thing as a “functional language paradigm”.

SOME COMMON PARADIGMS


You should know this:

 Imperative: Programming with an explicit sequence of commands that update state.

 Declarative: Programming by specifying the result you want, not how to get it.

 Structured: Programming with clean, goto-free, nested control structures.

 Procedural: Imperative programming with procedure calls.

 Functional (Applicative): Programming with function calls that avoid any global


state.

C. M. D. Hamo-ay
8
1 | Integrative Programming & Technologies 2

 Function-Level (Combinator): Programming with no variables at all.

 Object-Oriented: Programming by defining objects that send messages to each


other. Objects have their own internal (encapsulated) state and public interfaces.
Object orientation can be:

o Class-based: Objects get state and behavior based on membership in a class.


o Prototype-based: Objects get behavior from a prototype object.
 Event-Driven: Programming with emitters and listeners of asynchronous actions.

 Flow-Driven: Programming processes communicating with each other over


predefined channels.

 Logic (Rule-based): Programming by specifying a set of facts and rules. An engine


infers the answers to questions.

 Constraint: Programming by specifying a set of constraints. An engine finds the


values that meet the constraints.

 Aspect-Oriented: Programming cross-cutting concerns applied transparently.

 Reflective: Programming by manipulating the program elements themselves.

 Array: Programming with powerful array operators that usually make loops
unnecessary.

Paradigms are not meant to be mutually exclusive; a single program can feature multiple
paradigms!

SAMPLE OF PROGRAMMING PARADIGMS IS OOP

OOP is based on the sending of messages to objects. Objects respond to messages by


performing operations, generally called methods. Messages can have arguments. A society
of objects, each with their own local memory and own set of operations has a different feel
than the monolithic processor and single shared memory feel of non object oriented
languages.

One of the more visible aspects of the more pure-ish OO languages is that conditionals and
loops become messages themselves, whose arguments are often blocks of executable code.
In a Smalltalk-like syntax:

result := List new.


people each: [:p |
  p name length greaterThan: 5 ifTrue: [result add (p name
upper)]
]
result sort.
^result

C. M. D. Hamo-ay
9
1 | Integrative Programming & Technologies 2

This can be shortened to:

^people filter: [:p | p name length greaterThan: 5] map: [:p | p


name upper] sort

Many popular languages that call themselves OO languages (e.g., Java, C++),
really just take some elements of OOP and mix them in to imperative-looking
code. In the following, we can see that length and toUpper are methods rather
than top-level functions, but the for and if are back to being control structures:

result = []
for p in people {
    if p.name.length > 5 {
        result.add(p.name.toUpper);
    }
}
return result.sort;

The first object oriented language was Simula-67; Smalltalk followed soon after as
the first “pure” object-oriented language. Many languages designed from the
1980s to the present have labeled themselves object-oriented, notably C++, CLOS
(object system of Common Lisp), Eiffel, Modula-3, Ada 95, Java, C#, Ruby.

1.2.3 Web Service and Middleware


Overview
• There a number of different types of middleware
So what does Web Services offer?

C. M. D. Hamo-ay
10
1 | Integrative Programming & Technologies 2

Middleware

• Middleware enables integration, but there are multiple – competing – choices:


– CORBA
– J2EE
– .NET
– Various MoM & EAI proprietary middleware
– Web Sevices – the new kid on the block

There’s lots of choice


• Some based on technical grounds, including:
– RPC versus message passing
– Java specific versus multi-language
– Direct versus indirect communication
– Permanent versus occasional connection
– Platform versus integration middleware
• Some based on personal choice

Intra-enterprise versus inter-enterprise

• Most middleware has been designed for intra- enterprise


• Inter-enterprise adds at least two challenges
– Firewalls ( & inter-enterprise security in general)
– Different middleware may be used at the two ends
• As well as different operating system, languages, etc

Web Services
• Aims to address both of these issues
– Its protocol is layered on HTTP
• So it can flow through a firewall
• This “cheat” raises security and other concerns, but ones that need to
be addressed in any case
– It uses XML to format messages
• So both sides can accept this as a “neutral” formatting approach
3 uses of Web Services

• Inter-enterprise communication

C. M. D. Hamo-ay
11
1 | Integrative Programming & Technologies 2

• Intra-enterprise (inter-middleware) communication


• Technology neutral interfaces to packages
– e.g., ERP

Web Services won’t replace existing middleware …


• Such as
• CORBA
• J2EE
• MOM, EAI etc
• Why:
• The incumbents are strong, well suited to their uses, and no one has money
these days to fix what isn’t broken
• Web Services are “integration middleware” and not “platform middleware”
– You can’t implement services using the Web Services standards. CORBA,
J2EE and .NET are the only platform middlewares.
Web Services and CORBA
• CORBA is platform middleware
– Multi-language, multi-platform, object/component oriented,
robust, high-performance, reliable, transactional, secure, ….
• …. And very well proven: banking, telecommunications,
utilities, government, defence, computer animation,
astronomy, weather simulation, and so on
• So what’s missing then?
– … why would you need Web Services ?
What can Web Services offer CORBA?
• Integration across the web
– Not just across firewalls, but integration with the web (technology and acceptance)

SOAP
1.2.4 Network programming
The term network
CORBA
programming refers to writing programs that execute across multiple
devices (computers), in which the devices are all connected to each other using a network.
message
The java.net package of the J2SE APIs contains a collection of classes and interfaces that
provide the low-level communication details, allowing you to write programs that focus on
solving the problem at hand.

C. M. D. Hamo-ay
12
1 | Integrative Programming & Technologies 2

The java.net package provides support for the two common network protocols −
 TCP − TCP stands for Transmission Control Protocol, which allows for reliable
communication between two applications. TCP is typically used over the Internet
Protocol, which is referred to as TCP/IP.
 UDP − UDP stands for User Datagram Protocol, a connection-less protocol that
allows for packets of data to be transmitted between applications.
This chapter gives a good understanding on the following two subjects −
 Socket Programming − This is the most widely used concept in Networking and it
has been explained in very detail.
 URL Processing − This would be covered separately. Click here to learn about URL
Processing in Java language.

ServerSocket Class Methods

 The java.net.ServerSocket class is used by server applications to obtain a port and


listen for client requests.
 The ServerSocket class has four constructors −
Sr.No. Method & Description

1 public ServerSocket(int port) throws IOException


Attempts to create a server socket bound to the specified port. An exception
occurs if the port is already bound by another application.
2 public ServerSocket(int port, int backlog) throws IOException
Similar to the previous constructor, the backlog parameter specifies how many
incoming clients to store in a wait queue.
3 public ServerSocket(int port, int backlog, InetAddress address) throws
IOException
Similar to the previous constructor, the InetAddress parameter specifies the
local IP address to bind to. The InetAddress is used for servers that may have
multiple IP addresses, allowing the server to specify which of its IP addresses to
accept client requests on.
4 public ServerSocket() throws IOException
Creates an unbound server socket. When using this constructor, use the bind()
method when you are ready to bind the server socket.

 If the ServerSocket constructor does not throw an exception, it means that your
application has successfully bound to the specified port and is ready for client
requests.
 Following are some of the common methods of the ServerSocket class −

C. M. D. Hamo-ay
13
1 | Integrative Programming & Technologies 2

Sr.No. Method & Description

1 public int getLocalPort()


Returns the port that the server socket is listening on. This method is useful if
you passed in 0 as the port number in a constructor and let the server find a
port for you.
2 public Socket accept() throws IOException
Waits for an incoming client. This method blocks until either a client connects to
the server on the specified port or the socket times out, assuming that the time-
out value has been set using the setSoTimeout() method. Otherwise, this
method blocks indefinitely.
3 public void setSoTimeout(int timeout)
Sets the time-out value for how long the server socket waits for a client during
the accept().
4 public void bind(SocketAddress host, int backlog)
Binds the socket to the specified server and port in the SocketAddress object.
Use this method if you have instantiated the ServerSocket using the no-
argument constructor.

 When the ServerSocket invokes accept(), the method does not return until a client
connects. After a client does connect, the ServerSocket creates a new Socket on an
unspecified port and returns a reference to this new Socket. A TCP connection now
exists between the client and the server, and communication can begin.

Socket Class Methods

 The java.net.Socket class represents the socket that both the client and the server
use to communicate with each other. The client obtains a Socket object by
instantiating one, whereas the server obtains a Socket object from the return value of
the accept() method.
 The Socket class has five constructors that a client uses to connect to a server −

Sr.No. Method & Description

public Socket(String host, int port) throws UnknownHostException,


IOException.
1
This method attempts to connect to the specified server at the specified port. If
this constructor does not throw an exception, the connection is successful and
the client is connected to the server.

C. M. D. Hamo-ay
14
1 | Integrative Programming & Technologies 2

public Socket(InetAddress host, int port) throws IOException


2 This method is identical to the previous constructor, except that the host is
denoted by an InetAddress object.

public Socket(String host, int port, InetAddress localAddress, int localPort)


throws IOException.
3
Connects to the specified host and port, creating a socket on the local host at the
specified address and port.

public Socket(InetAddress host, int port, InetAddress localAddress, int


localPort) throws IOException.
4
This method is identical to the previous constructor, except that the host is
denoted by an InetAddress object instead of a String.

public Socket()
5 Creates an unconnected socket. Use the connect() method to connect this socket
to a server.

 When the Socket constructor returns, it does not simply instantiate a Socket object
but it actually attempts to connect to the specified server and port.
 Some methods of interest in the Socket class are listed here. Notice that both the
client and the server have a Socket object, so these methods can be invoked by both
the client and the server.

Sr.No. Method & Description

public void connect(SocketAddress host, int timeout) throws IOException


1
This method connects the socket to the specified host. This method is needed
only when you instantiate the Socket using the no-argument constructor.

public InetAddress getInetAddress()


2 This method returns the address of the other computer that this socket is
connected to.

C. M. D. Hamo-ay
15
1 | Integrative Programming & Technologies 2

public int getPort()


3
Returns the port the socket is bound to on the remote machine.

public int getLocalPort()


4
Returns the port the socket is bound to on the local machine.

public SocketAddress getRemoteSocketAddress()


5
Returns the address of the remote socket.

public InputStream getInputStream() throws IOException


6 Returns the input stream of the socket. The input stream is connected to the
output stream of the remote socket.

public OutputStream getOutputStream() throws IOException


7 Returns the output stream of the socket. The output stream is connected to the
input stream of the remote socket.

public void close() throws IOException


8 Closes the socket, which makes this Socket object no longer capable of
connecting again to any server.

InetAddress Class Methods

 This class represents an Internet Protocol (IP) address. Here are following usefull
methods which you would need while doing socket programming −

Sr.No. Method & Description

1 static InetAddress getByAddress(byte[] addr)


Returns an InetAddress object given the raw IP address.

2 static InetAddress getByAddress(String host, byte[] addr)

C. M. D. Hamo-ay
16
1 | Integrative Programming & Technologies 2

Creates an InetAddress based on the provided host name and IP address.

static InetAddress getByName(String host)


3
Determines the IP address of a host, given the host's name.

String getHostAddress()
4
Returns the IP address string in textual presentation.

String getHostName()
5
Gets the host name for this IP address.

static InetAddress InetAddress getLocalHost()


6
Returns the local host.

String toString()
7
Converts this IP address to a String.

 Socket Client Example


 The following GreetingClient is a client program that connects to a server by using a
socket and sends a greeting, and then waits for a response.
ASSESMENT:
Name:_________________________________Course:___________Yr/
Sec:________

A. Write the correct answer in each questions.

1. What are the methods of system integration?

2. What is the difference between CRM and ERP System?

3. Explain why CORBA is not replaced in Web Services?

4. In Network programming why need to use multiple programs?

5. What web services CORBA offer?

C. M. D. Hamo-ay
17
1 | Integrative Programming & Technologies 2

1.3 References
https://digitalfellows.commons.gc.cuny.edu/2018/03/12/an-introduction-to-
programming-paradigms/#orgheadline2
A Brief History of Programming Languages.”
http://www.byte.com/art/9509/se7/artl9.htm. Cited, March 25, 2000.
“A Short History of the Computer.” http://www.softlord.com/comp/. Jeremy
Myers. Cited, March 25, 2000.
Bergin, Thomas J. and Richard G. Gibson, eds. History of Programming Languages-II.
New York: ACM Press, 1996.
https://java-programming.mooc.fi/part-7/1-programming-paradigms
1.4 Acknowledgment
  The images, tables, figures and information contained in this module were
taken from the references cited above.

C. M. D. Hamo-ay

You might also like