Integrative Programming and Technology 1
Integrative Programming and Technology 1
Week 9
Learning Outcomes:
systems.
integrate applications.
systems.
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
SAN ARCHITECTURE
HARD DRIVES
• The basic storage element is a Hard Drive. They are made into
tracks.
• File systems arrange files into sectors so that they can be stored
blocks and uses a FAT (File Allocation Table) to map a file to the
sectors.
SAN VIRTUALIZATION
SAN vs NAS:
SAN. The main benefits out of this are easy installation and
access.
vendor.
SAN ADVANTAGES
SAN DISADVANTAGES
• Also, there are a few SAN product vendors due to its very high
price and very few mega enterprises need SAN set up.
1. Information Storage and Management: Storing, Managing, and Protecting Digital Information in
Classic,
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/
1. https://www.youtube.com/watch?v=BzjhHNfFQW0
Thank You!
Course Module
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.
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,
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
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
SAN VIRTUALIZATION
As it has been found quite complex, virtualization concept came into picture for the sake of
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
Course Module
server that accesses the SAN. The main benefits out of this are easy installation and access.
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
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 provides long distance connectivity - With Fibre channel capable of running up to 10 kilometers,
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
Management of SAN systems has proved to be a real tough one due to various reasons. Also for some,
Course Module
Also, there are a few SAN product vendors due to its very high price and very few mega enterprises
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.
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/
1. https://www.youtube.com/watch?v=BzjhHNfFQW0
Week 8
Learning Outcomes:
2. Compare programming design patterns and the IT services needed integrate applications.
XML Declaration
XML DTD
XML DTD
XML Schema
Summary
1. Hennefeld, J., Baker L.. (2016). Using C++: An Introduction to Programming (2nd edition) Brooks/Cole:
2. https://www.geeksforgeeks.org/generation-programming-languages/
1. https://www.youtube.com/watch?v=o4bZR3lznUY
Thank You!
Course Module
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,
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
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
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
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
– 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
Course Module
ELEMENT ATTRIBUTE
• White space can be ignored or preserved • No further nesting possible (atomic data),
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
XML Schema
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
Course Module
1. Siewart, Sam & John Pratt. (2016). Real time embedded components and systems with
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
Learning Outcomes:
2. Compare programming design patterns and the IT services needed integrate applications.
What is XML?
Design of XML
Design of XML
XML Example
XML Technologies
XML Technologies
1. Hennefeld, J., Baker L.. (2016). Using C++: An Introduction to Programming (2nd edition) Brooks/Cole:
1. https://www.astera.com/type/blog/understanding-data-mapping-and-its-techniques/
2. https://www.geeksforgeeks.org/generation-programming-languages/
Thank You!
Course Module
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,
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
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
Design of XML
The design goals for XML as set out in the 1.0 specification are as follows:
5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero.
Course Module
XML Declaration
• Elements
• Attributes
• Entities
• Processing Instructions
• Comments
• XML Namespaces
Course Module
1. Siewart, Sam & John Pratt. (2016). Real time embedded components and systems with
https://www.astera.com/type/blog/understanding-data-mapping-and-its-techniques/
https://www.geeksforgeeks.org/generation-programming-languages/
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