Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

Integrative Programming and Technology 1

Week 9

Storage Area Network

Learning Outcomes:

1. Distinguish the role of storage systems between dissimilar IT

systems.

2. Compare Storage design patterns and the IT services needed to

integrate applications.

Storage Area Network Background

Week 9: Storage Area Network

• A SAN (Storage Area Network) is a network designed to transfer

data from servers to targets, and it is alternative to a directly

attached target architecture, or to a DAS architecture.

• Additional definitions of a SAN imply that the SAN should also

be highly performing, and should be such to enable storage

devices to communicate with one another and with computer

systems.

Storage Area Network Background

Week 9: Storage Area Network

• Storage area networks (SANs) are the most common storage

networking architecture used by enterprises for businesscritical applications that need to deliver high
throughput and

low latency.

• A rapidly growing portion of SAN deployments leverages allflash storage to gain its high performance,
consistent low

latency, and lower total cost when compared to spinning disk.

By storing data in centralized shared storage, SANs enable


organizations to apply consistent methodologies and tools for

security, data protection, and disaster recovery.

SAN ARCHITECTURE

Week 9: Storage Area Network

Storage is accessed at block level not at file level with exemplary

performances. Storage is shared and there’s also a good

management tools however there is interoperability issues.

HARD DRIVES

Week 9: Storage Area Network

• The basic storage element is a Hard Drive. They are made into

complex devices composed of platters, heads, cylinders and

tracks.

• File systems arrange files into sectors so that they can be stored

and retrieved. The File system usually deals with clusters of

blocks and uses a FAT (File Allocation Table) to map a file to the

sectors.

SAN VIRTUALIZATION

Week 9: Storage Area Network

• Virtualization can be defined as an abstracted management of

huge amounts of equipment and data.

• Virtualization takes all diverse and large complex storage

devices and makes them appear as one Hugh volume.

• Presently there are three proven methodologies for achieving

SAN virtualization in the market.

SAN AND NAS: NETWORK AND NODE

Week 9: Storage Area Network

SAN vs NAS:

• While a SAN is a network connecting storage subsystems, the

NAS is a storage subsystem, making use of a general purpose


network.

• The SAN is an extension of the disk channel outside the server,

while the NAS is a disk subsystem connected to the servers, in

most cases via an IP network.

TYPES OF SAN VIRTUALIZATION

Week 9: Storage Area Network

• Host-based virtualization - This methodology requires a

control software program on every server that accesses the

SAN. The main benefits out of this are easy installation and

access.

• Storage-based virtualization - It works in a homogeneous

to a DAS architecture, i.e., everything has to be from the same

vendor.

TYPES OF SAN VIRTUALIZATION

Week 9: Storage Area Network

SAN ADVANTAGES

Week 9: Storage Area Network

• SAN Architecture facilitates scalability - Any number of

storage devices can be added to store hundreds of terabytes.

• Sharing SAN is possible - As SAN is not directly attached with

any particular server or network, a SAN can be shared by all.

• SAN provides long distance connectivity - With Fibre channel

capable of running up to 10 kilometers, we can keep our data in

a remote, physically secure location.

• SAN is truly versatile - A SAN can be single entity, a master

grouping of several SANs

SAN DISADVANTAGES

Week 9: Storage Area Network

• SANs are very expensive as Fibre channel technology tends to be


pricier and maintenance requires a higher degree of skill .

• Management of SAN systems has proved to be a real tough one

due to various reasons. Also for some, having a SAN storage

facility seems to be wasteful one.

• Also, there are a few SAN product vendors due to its very high

price and very few mega enterprises need SAN set up.

References and Supplementary Materials:

Books and Journals

1. Information Storage and Management: Storing, Managing, and Protecting Digital Information in
Classic,

Virtualized, and Cloud Environments” by EMC Education Services

2. Storage Area Network Fundamentals by Meeta Gupta, Published by Cisco Press.

Online Supplementary Reading Materials

https://www.netapp.com/us/info/what-is-storage-area-network.aspx

https://www.sciencedirect.com/topics/computer-science/storage-area-network

https://www.geeksforgeeks.org/generation-programming-languages/

Online Instructional Videos

1. https://www.youtube.com/watch?v=BzjhHNfFQW0

Thank You!

Integrative Programming and Technologies 2

Storage Area Network 1

Course Module

Module 08 Storage Area Network

Course Learning Outcomes:

1. Distinguish the role of storage systems between dissimilar IT systems.

2. Compare Storage design patterns and the IT services needed to

integrate applications.

Background

A SAN (Storage Area Network) is a network designed to transfer data from servers to targets,
and it is alternative to a directly attached target architecture, or to a DAS architecture

Additional definitions of a SAN imply that the SAN should also be highly performing, and

should be such to enable storage devices to communicate with one another and with computer

systems.

Storage area networks (SANs) are the most common storage networking architecture used

by enterprises for business-critical applications that need to deliver high throughput and low

latency. A rapidly growing portion of SAN deployments leverages all-flash storage to gain its high

performance, consistent low latency, and lower total cost when compared to spinning disk. By

storing data in centralized shared storage, SANs enable organizations to apply consistent

methodologies and tools for security, data protection, and disaster recovery.

Storage Area Networks are versatile enterprise resources whose value depends on how

much is shared. In other words, sharing is profoundly the nature of SANs, and if you intend to

dedicate a SAN to a server or a group of servers, you basically defeat the purpose of the SAN.

The concept of a virtual SAN is not limited to simply security considerations from networking

vendors. Much recent use of the term virtual SAN leans heavily on the virtual side of the phrase.

Virtualization vendors employ the term virtual SAN to imply an approach to the SAN that allows for

more rapid provisioning of virtualized storage. Beyond provisioning, virtualization vendors tout the

virtual SAN as a means to leverage virtualization to afford simpler linear scalability to the storage

area network.

Integrative Programming and Technologies 2

Storage Area Network 2

Course Module

SAN ARCHITECTURE

Storage is accessed at block level not at file level with exemplary performances. Storage is

shared and there’s also a good management tools however there is interoperability issues.

DIFFERENT TECHNOLOGIES

Multiple technology can be used when building a SAN; traditionally the dominant technology is

Fiber Channel, but IP based solutions are also quite popular for specific applications. The
concept of SAN is also independent from the devices that are attached to it. Can be disks, tapes,

RAIDs, file servers, or other.

SAN AND NAS: NETWORK AND NODE

SAN vs NAS: while a SAN is a network connecting storage subsystems, the NAS is a storage

subsystem, making use of a general purpose network. The SAN is an extension of the disk

channel outside the server, while the NAS is a disk subsystem connected to the servers, in most

cases via an IP network.

HARD DRIVES

The basic storage element is a Hard Drive. They are made into complex devices composed of

platters, heads, cylinders and tracks. File systems arrange files into sectors so that they can be

stored and retrieved. The File system usually deals with clusters of blocks and uses a FAT (File

Allocation Table) to map a file to the sectors.

SAN VIRTUALIZATION

As it has been found quite complex, virtualization concept came into picture for the sake of

effective and efficient management of SAN. Virtualization can be defined as an abstracted

management of huge amounts of equipment and data. Virtualization takes all diverse and large

complex storage devices and makes them appear as one Hugh volume. Presently there are three

proven methodologies for achieving SAN virtualization in the market.

Integrative Programming and Technologies 2

Storage Area Network 3

Course Module

TYPES OF SAN VIRTUALIZATION

Host-based virtualization - This methodology requires a control software program on every

server that accesses the SAN. The main benefits out of this are easy installation and access.

Storage-based virtualization - It works in a homogeneous hardware environment, i.e., everything

has to be from the same vendor.

A SAN appliance virtualizes storage and has the effect of converting various storage devices into one

big disk. This big virtual disk stores terabytes of data that can allocate storage to different

applications quickly and painlessly.


SAN ADVANTAGES

SAN Architecture facilitates scalability - Any number of storage devices can be added to store

hundreds of terabytes.

Sharing SAN is possible - As SAN is not directly attached with any particular server or network, a

SAN can be shared by all.

SAN provides long distance connectivity - With Fibre channel capable of running up to 10 kilometers,

we can keep our data in a remote, physically secure location.

SAN is truly versatile - A SAN can be single entity, a master grouping of several SANs

SAN DISADVANTAGES

SANs are very expensive as Fibre channel technology tends to be pricier and maintenance requires a

higher degree of skill .

Management of SAN systems has proved to be a real tough one due to various reasons. Also for some,

having a SAN storage facility seems to be wasteful one.

Integrative Programming and Technologies 2

Storage Area Network 4

Course Module

Also, there are a few SAN product vendors due to its very high price and very few mega enterprises

need SAN set up.

CONCLUSION

SAN is literally a separate network devoted entirely to storage. Almost all SANs communicate and

connect to servers via a Fibre channel host adopter card and switch.

References and Supplementary Materials

Books and Journals

1. Information Storage and Management: Storing, Managing, and Protecting Digital

Information in Classic, Virtualized, and Cloud Environments” by EMC Education Services

2. Storage Area Network Fundamentals by Meeta Gupta, Published by Cisco Press.

Online Supplementary Reading Materials

https://www.netapp.com/us/info/what-is-storage-area-network.aspx

https://www.sciencedirect.com/topics/computer-science/storage-area-network
https://www.geeksforgeeks.org/generation-programming-languages/

Online Instructional Videos

1. https://www.youtube.com/watch?v=BzjhHNfFQW0

Week 8

Data Mapping and Exchange Part 2

Learning Outcomes:

1. Distinguish the role of data exchange between dissimilar IT systems.

2. Compare programming design patterns and the IT services needed integrate applications.

XML Declaration

Week 8: Data Mapping and Exchange Part 2

XML Elements and Attributes

Week 8: Data Mapping and Exchange Part 2

XML DTD

Week 8: Data Mapping and Exchange Part 2

XML DTD

Week 8: Data Mapping and Exchange Part 2

XML Schema

Week 8: Data Mapping and Exchange Part 2

XML Schema Example

Week 8: Data Mapping and Exchange Part 2

Summary

Week 8: Data Mapping and Exchange Part 2

References and Supplementary Materials:

Books and Journals

1. Hennefeld, J., Baker L.. (2016). Using C++: An Introduction to Programming (2nd edition) Brooks/Cole:

Thomson Learning Inc.

2. Johnson, Richard. (2017). An Introduction to Java Programming and Object-Oriented Application

Development, 1st Edition. Cengage Learning

Online Supplementary Reading Materials


1. https://www.astera.com/type/blog/understanding-data-mapping-and-its-techniques/

2. https://www.geeksforgeeks.org/generation-programming-languages/

Online Instructional Videos

1. https://www.youtube.com/watch?v=o4bZR3lznUY

Thank You!

Integrative Programming and Technologies 2

Data Mapping and Exhange Part 2 1

Course Module

Module 07 Data Mapping and Exchange Part 2

Course Learning Outcomes:

1. Distinguish the role of data exchange between dissimilar IT systems.

2. Compare programming design patterns and the IT services needed to

integrate applications.

Background

Extensible Markup Language (XML) is used to describe data. The XML standard is a flexible

way to create information formats and electronically share structured data via the public Internet,

as well as via corporate networks.

XML code, a formal recommendation from the World Wide Web Consortium (W3C), is

similar to Hypertext Markup Language (HTML). Both XML and HTML contain markup symbols to

describe page or file contents. HTML code describes Web page content (mainly text and graphic

images) only in terms of how it is to be displayed and interacted with.

XML data is known as self-describing or self-defining, meaning that the structure of the data

is embedded with the data, thus when the data arrives there is no need to pre-build the structure to

store the data; it is dynamically understood within the XML. The XML format can be used by any

individual or group of individuals or companies that want to share information in a consistent way.

XML is actually a simpler and easier-to-use subset of the Standard Generalized Markup Language

(SGML), which is the standard to create a document structure.

XML Declaration

It is placed at the start of an XML document. Informs XML software of the version of XML the
document conforms to and the character encoding scheme used in the document. Whether or not a

set of external declarations affect the interpretation of this document.

Integrative Programming and Technologies 2

Data Mapping and Exhange Part 2 2

Course Module

XML Elements

Elements define logical structure and sections of XML documents. Each element must be

completely enclosed by another element, except for the root. Each element must be completely

enclosed by another element, except for the root.

There are Four different content types:

–  Data content

–  Element content

–  Mixed content

–  Empty.

XML Attributes

XML attributes provides additional information about an element. Attributes are contained

within the start-tag and consists of a name and associated value separated by an equals sign. The

attribute value must always be enclosed by quotes. The order of attributes is insignificant

Integrative Programming and Technologies 2

Data Mapping and Exhange Part 2 3

Course Module

Element and Attribute Comparison

ELEMENT ATTRIBUTE

•  Constituent data, •  Inherent data,

•  Used for content, •  Used for meta-data,

•  White space can be ignored or preserved •  No further nesting possible (atomic data),

•  Nesting allowed (child elements), •  Default values,

•  Convenient for large values, or binary •  Minimal datatypes,

entities.
Document Type Definition

It defines the structure or model of XML documents in terms of elements and cardinality,

attributes and aggregation, default ATTRIBUTE values and ENTITIES. Stored in a plain text file and

referenced by an XML document (external). Alternatively a DTD can be placed in the XML document

itself (internal). It is also used to validate an XML document.

Why use a DTD?

1. Applications may require all documents to be consistent instances of a particular vocabulary.

2. Indicates what structures and names can be used in a document.

3. Documents are constructed and named in a conformant manner.

4. Validate documents in order to find inconsistencies.

XML Schema

An XML schema is a description of a type of XML document, typically expressed in

terms of constraints on the structure and content of documents of that type, above and beyond the

basic syntactical constraints imposed by XML itself. These constraints are generally expressed using

some combination of grammatical rules governing the order of elements, Boolean predicates that

the content must satisfy, data types governing the content of elements and attributes, and more

specialized rules such as uniqueness and referential integrity constraints.

Integrative Programming and Technologies 2

Data Mapping and Exhange Part 2 4

Course Module

References and Supplementary Materials

Books and Journals

1. Siewart, Sam & John Pratt. (2016). Real time embedded components and systems with

Linux and Rtos, O'Reilly Media

2. Johnson, Richard. (2017). An Introduction to Java Programming and Object-Oriented

Application Development, 1st Edition. Cengage Learning

Online Supplementary Reading Materials

https://www.astera.com/type/blog/understanding-data-mapping-and-its-techniques/

https://www.geeksforgeeks.org/generation-programming-languages/
Online Instructional Videos

1. https://www.youtube.com/watch?v=o4bZR3lznUY

Week 7

Data Mapping and Exchange Part 1

Learning Outcomes:

1. Distinguish the role of data exchange between dissimilar IT systems.

2. Compare programming design patterns and the IT services needed integrate applications.

What is XML?

Week 7: Data Mapping and Technologies Part 1

Design of XML

Week 7: Data Mapping and Technologies Part 1

Design of XML

Week 7: Data Mapping and Technologies Part 1

XML Example

Week 7: Data Mapping and Technologies Part 1

XML Technologies

Week 7: Data Mapping and Technologies Part 1

XML Technologies

Week 7: Data Mapping and Technologies Part 1

References and Supplementary Materials:

Books and Journals

1. Hennefeld, J., Baker L.. (2016). Using C++: An Introduction to Programming (2nd edition) Brooks/Cole:

Thomson Learning Inc.

2. Johnson, Richard. (2017). An Introduction to Java Programming and Object-Oriented Application

Development, 1st Edition. Cengage Learning

Online Supplementary Reading Materials

1. https://www.astera.com/type/blog/understanding-data-mapping-and-its-techniques/

2. https://www.geeksforgeeks.org/generation-programming-languages/

Online Instructional Videos


1. https://www.youtube.com/watch?v=o4bZR3lznUY

Thank You!

Integrative Programming and Technologies 2

Data Mapping and Exchange Part 1 1

Course Module

Module 06 Data Mapping and Exchange Part 1

Course Learning Outcomes:

1. Distinguish the role of data exchange between dissimilar IT systems.

2. Compare programming design patterns and the IT services needed to

integrate applications.

Background

Extensible Markup Language (XML) is used to describe data. The XML standard is a flexible

way to create information formats and electronically share structured data via the public Internet,

as well as via corporate networks.

XML code, a formal recommendation from the World Wide Web Consortium (W3C), is

similar to Hypertext Markup Language (HTML). Both XML and HTML contain markup symbols to

describe page or file contents. HTML code describes Web page content (mainly text and graphic

images) only in terms of how it is to be displayed and interacted with.

XML data is known as self-describing or self-defining, meaning that the structure of the data

is embedded with the data, thus when the data arrives there is no need to pre-build the structure to

store the data; it is dynamically understood within the XML. The XML format can be used by any

individual or group of individuals or companies that want to share information in a consistent way.

XML is actually a simpler and easier-to-use subset of the Standard Generalized Markup Language

(SGML), which is the standard to create a document structure.

Design of XML

The design goals for XML as set out in the 1.0 specification are as follows:

1. XML shall be straightforwardly usable over the Internet.

2. XML shall support a wide variety of applications.

3. XML shall be compatible with SGML.


4. It shall be easy to write programs which process XML documents.

5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero.

Integrative Programming and Technologies 2

Data Mapping and Exchange Part 1 2

Course Module

6.  XML documents should be human-legible and reasonably clear.

7.  The XML design should be prepared quickly.

8.  The design of XML shall be formal and concise.

9.  XML documents shall be easy to create.

10. Terseness in XML markup is of minimal importance.

Figure 3.1 XML Example

Physical Parts of XML Technologies

XML Declaration

•  Elements

•  Attributes

•  Document Type Declaration

•  Entities

•  Processing Instructions

•  Comments

•  Character Data Sections

•  XML Namespaces

Integrative Programming and Technologies 2

Data Mapping and Exchange Part 1 3

Course Module

References and Supplementary Materials

Books and Journals

1. Siewart, Sam & John Pratt. (2016). Real time embedded components and systems with

Linux and Rtos, O'Reilly Media

2. Johnson, Richard. (2017). An Introduction to Java Programming and Object-Oriented


Application Development, 1st Edition. Cengage Learning

Online Supplementary Reading Materials

https://www.astera.com/type/blog/understanding-data-mapping-and-its-techniques/

https://www.geeksforgeeks.org/generation-programming-languages/

Online Instructional Videos

1. https://www.youtube.com/watch?v=o4bZR3lznUY
2. Week 6
3. Network Programming
4. Learning Outcomes
5. • Describe the key components of Network Protocols.
6. • Describe network management and protection techniques.
7. • Describe socket programming methods.
8. • Describe Inter-process communication systems.
9. Background
10. Week 6: Network Programming
11. There are many issues that arise when doing network
12. programming which do not appear when doing single
13. program applications. However, JAVA makes networking
14. applications simple due to the easy-to-use libraries. In general,
15. applications that have components running on different
16. machines are known as distributed applications ... and usually
17. they consist of client/server relationships..
18. Background
19. Week 6: Network Programming
20. Network Programming involves writing programs
21. that communicate with other programs across a
22. computer network.
23. A server is an application that provides a "service"
24. to various clients who request the service.
25. Background
26. Week 6: Network Programming
27. There are many client/server scenarios in real life:
28. • Bank tellers (server) provide a service for the account
29. owners (client)
30. • Waitresses (server) provide a service for customers (client)
31. • Travel agents (server) provide a service for people wishing
32. to go on vacation (client)
33. Background
34. Week 6: Network Programming
35. In some cases, servers themselves may become clients at various
36. times example is the travel agents will become clients when they
37. phone the airline to make a reservation or contact a hotel to book a
38. room.
39. In the general networking scenario, everybody can either be a client
40. or a server at any time. This is known as peer-to-peer computing. In
41. terms of writing java applications it is similar to having many
42. applications communicating among one another.
43. Reading Files from the Internet
44. Week 6: Network Programming
45. A Uniform Resource Locator (i.e., URL) is a reference (or address)
46. to a resource over a network (e.g., on the Internet).
47. So, a URL can be used to represent the "location" of a webpage or
48. web-based application. A URL is really just a String that represents
49. the name of a resource ... which can be files, databases, applications,
50. etc. A resource name consists of a host machine name, filename, port
51. number, and other information.
52. Reading Files from the Internet
53. Week 6: Network Programming
54. A URL resource name may generally contain:
55. • A Host Name - The name of the machine on which the resource
56. lives. http://www.apple.com:80/ipad/index.html
57. • A Port # (optional) - The port number to which to connect.
58. http://www.apple.com:80/ipad/index.html
59. • A Filename - The pathname to the file on the machine.
60. http://www.apple.com:80/ipad/index.html
61. Client/Server Communications
62. Week 6: Network Programming
63. A server is any application that provides a service and
64. allows clients to communicate with it.
65. A client is any application that requests a service from a
66. server.
67. Client/Server Communications
68. Week 6: Network Programming
69. The TCP protocol, mentioned earlier, provides reliable point-to-point
70. communication. Using TCP the client and server must establish a
71. connection in order to communicate.
72. To do this, each program binds a socket to its end of the connection. A
73. socket is one endpoint of a two way communication link between 2
74. programs running on the network. A socket is bound to a port number
75. so that the TCP layer can identify the application to which the data is
76. to be sent. It is similar to the idea of plugging the two together with a
77. cable.
78. Datagram Sockets
79. Week 6: Network Programming
80. The same client-server application, but by now using
81. DatagramSockets and DatagramPackets. Once again, the server will
82. be in a infinite loop accepting messages, although there will be no
83. direct socket connection to the client.
84. Each message is sent as a packet. Each packet contains:
85. • the data of the message (i.e., the message itself)
86. • the length of the message (i.e., the number of bytes)
87. • the address of the sender (as an InetAddress)
88. • the port of the sender
89. References and Materials
90. Books and Journals
91. 1. Unix Network Programming (2016) The Sockets Networking API, Volumes 1, by W Richard
Stevens, Bill Fenner,
92. Andrew M. Rudoff, published by Addison-Wesley (UNP)
93. 2. Information Storage and Management: Storing, Managing, and Protecting Digital Information
in Classic,
94. Virtualized, and Cloud Environments, Second Edition, EMC Education Services, 2012
95. Online Supplementary Reading Materials
96. 1. Network Programming: http://www.cse.sc.edu/~wyxu/515Fall08/csce515.html
97. 2. https://www.slideshare.net/vijipriyacse/ipt-chapter-5
98. Online Instructional Videos
99. 1. https://www.youtube.com/watch?v=xOk9-ZwW6-o
100. Thank You!
101. Integrative Programming and Technologies 1
102. Network Programming 1
103. Course Module
104. Module 05 Network Programming
105. Course Learning Outcomes:
106. 1. Describe the key components of Network Protocols
107. 2. Describe network management and protection techniques.
108. 3. Describe socket programming methods.
109. 4. Describe Inter-process communication systems.
110. Background
111. There are many issues that arise when doing network programming which do not
appear
112. when doing single program applications. However, JAVA makes networking applications
simple due
113. to the easy-to-use libraries. In general, applications that have components running on
different
114. machines are known as distributed applications ... and usually they consist of
client/server
115. relationships.
116. Network Programming involves writing programs that communicate with other
programs
117. across a computer network.
118. A server is an application that provides a "service" to various clients who request the
119. service.
120. There are many client/server scenarios in real life:
121.  Bank tellers (server) provide a service for the account owners (client)
122.  Waitresses (server) provide a service for customers (client)
123.  Travel agents (server) provide a service for people wishing to go on vacation (client)
124. In some cases, servers themselves may become clients at various times example is the
travel
125. agents will become clients when they phone the airline to make a reservation or contact
a hotel to
126. book a room. In the general networking scenario, everybody can either be a client or a
server at any
127. time. This is known as peer-to-peer computing. In terms of writing java applications it is
similar to
128. having many applications communicating among one another.
129. Integrative Programming and Technologies 1
130. Network Programming 2
131. Course Module
132. Reading Files from the Internet
133. A Uniform Resource Locator (i.e., URL) is a reference (or address) to a resource over a
network (e.g.,
134. on the Internet).
135. So, a URL can be used to represent the "location" of a webpage or web-based
application. A URL is
136. really just a String that represents the name of a resource ... which can be files,
databases,
137. applications, etc. A resource name consists of a host machine name, filename, port
number, and
138. other information.
139. http:// is the protocol identifier which indicates the protocol that will be used to obtain
the
140. resource. The remaining part is the resource name, and its format depends on the
protocol used to
141. access it.
142. A URL resource name may generally contain:
143.  A Host Name - The name of the machine on which the resource lives.
144. http://www.apple.com:80/ipad/index.html
145.  A Port # (optional) - The port number to which to connect.
146. http://www.apple.com:80/ipad/index.html
147.  A Filename - The pathname to the file on the machine.
148. http://www.apple.com:80/ipad/index.html
149. Client/Server Communications
150. Many companies today sell services or products. In addition, there are a large number of
151. companies turning towards E-business solutions and various kinds of
web-server/database
152. technologies that allow them to conduct business over the internet as well as over other
networks.
153. Such applications usually represent a client/server scenario in which one or more
servers serve
154. multiple clients.
155. A server is any application that provides a service and allows clients to communicate
with it.
156. A client is any application that requests a service from a server.
157. The client typically "uses" the service and then displays results to the user. Normally,
158. communication between the client and server must be reliable (no data can be dropped
or missing):
159. The TCP protocol, mentioned earlier, provides reliable point-to-point communication.
Using
160. TCP the client and server must establish a connection in order to communicate. To do
this, each
161. program binds a socket to its end of the connection. A socket is one endpoint of a two
way
162. communication link between 2 programs running on the network. A socket is bound to a
port
163. number so that the TCP layer can identify the application to which the data is to be sent.
It is similar
164. to the idea of plugging the two together with a cable.
165. The port number is used as the server's location on the machine that the server
application
166. is running. So if a computer is running many different server applications on the same
physical
167. machine, the port number uniquely identifies the particular server that the client wishes
to
168. communicate with:
169. Integrative Programming and Technologies 1
170. Network Programming 3
171. Course Module
172. The client and server may then each read and write to the socket bound to its end of the
connection.
173. Datagram Sockets
174. Recall that with the datagram protocol (i.e., UDP) there is no direct socket connection
175. between the client and the server. That is, packets are received "in seemingly random
order" from
176. different clients. It is similar to the way email works. If the client requests or server
responses are
177. too big, they are broken up into multiple packets and sent one packet at a time. The
server is not
178. guaranteed to receive the packets all at once, nor in the same order nor is it guaranteed
to receive
179. all the packets.
180. The same client-server application, but by now using DatagramSockets and
181. DatagramPackets. Once again, the server will be in a infinite loop accepting messages,
although
182. there will be no direct socket connection to the client. We will be setting up a buffer
(i.e., an array of
183. bytes) which will be used to receive incoming requests.
184. Each message is sent as a packet. Each packet contains:
185.  the data of the message (i.e., the message itself)
186.  the length of the message (i.e., the number of bytes)
187.  the address of the sender (as an InetAddress)
188.  the port of the sender
189. References and Supplementary Materials
190. Books and Journals
191. 1. Unix Network Programming (2016) The Sockets Networking API, Volumes 1, by W
192. Richard Stevens, Bill Fenner, Andrew M. Rudoff, published by Addison-Wesley (UNP)
193. 2. Information Storage and Management: Storing, Managing, and Protecting Digital
194. Information in Classic, Virtualized, and Cloud Environments, Second Edition, EMC
195. Education Services, 2012
196. Online Supplementary Reading Materials
197. 1. Network Programming
198. http://www.cse.sc.edu/~wyxu/515Fall08/csce515.html
199. Online Instructional Videos
200. 1. https://www.youtube.com/watch?v=xOk9-ZwW6-o
201. Integrative Programming and Technologies 1
202. Network Programming 4
203. Course Module

You might also like