Computing since its inception has undergone many changes, from large computers that perform tasks allowed to a limited and somewhat exclusive use very select organizations, to present either personal computers or laptops that have the same or even greater capabilities than the first and are increasingly introduced into the daily life of a person.
The biggest changes are mainly attributed to two causes, which occurred from the seventies:
1. The development of microprocessors, which led to a reduction in size and cost of computers and greatly increase the capabilities of themselves and their access to more people.
2. The development of local area networks and communication for connecting computers can transfer data at high speed.
Development of Distributed Systems
Definition:
"Systems whose hardware and software components, which are on networked computers, communicate and coordinate their actions by passing messages, to achieve a goal. The connection is made using a predetermined protocol scheme for a client-server".
Features:
* Concurrency - This feature allows distributed systems resources available in the network can be used simultaneously by users and / or agents that interact in the network.
* Lack of global clock .- The coordination for the transfer of messages between the various components to perform a task, do not have a general timing, is more evenly distributed to the components.
* Independent failures of components .- Each system component may fail independently with which others can continue to execute their actions. This allows the achievement of the tasks more effectively, because the whole system is still working.
Evolution:
Central Processing (Host) - One of the first models of interconnected computers, call center, where all the processing of the organization are carried out on a single computer, usually a mainframe, and personal computer users employed simple.
The problems with this model are:
* When the increased processing load had to change the hardware of the mainframe, which is more expensive to add more client computers or servers to increase capacity.
*
* The other problem that arose is the modern graphical user interfaces, which could lead to a large increase in traffic on the media and therefore could collapse.
Server Group - Another model that came to compete with the former, also somewhat centralized, are a group of computers acting as servers, normally files or print, unintelligent for a number of minicomputers that are connected to a processing local area network.
The problems with this model are:
* Could be generated saturation media between servers and minicomputers unintelligent, for example, when files are requested grades for several customers at once, could greatly reduce the speed of transmission.
Client Server Computing - This model, which prevails at present, can decentralize the processing and resources, above all, of each of the services and the Display of Graphical User Interface. This means that some servers are dedicated only to a particular application and therefore run efficiently.
Client-Server
Definition:
System where the client is a machine requesting a particular service and server is called the machine that is provided. The services include:
* Implementation of a program.
* Access to specific bank information.
* Access to a hardware device.
It is an essential element, the presence of a physical means of communication between machines, and will depend on the nature of this medium the viability of the system.
Categories Servers:
Below is a list of the most common servers:
* File servers - Provides customer files. If the files were not so great and users who share those files were not many, this would be a great choice of file storage and processing. The client requests the server files and places them and send them.
* Database Servers - They are those who store large amounts of structured data, differ from the file because the information sent is already summarized in the database. Example: The client makes a query, the server receives the query (SQL) and extracts only the relevant information and sends that response to the client.
* Servers Software Group - The group is one software that lets you organize the work of a group. The server gets the data that support these tasks. For example: store the e-mail lists. The customer can tell, that has completed a task and the server sends it to the group.
* Web servers - Are they that keep and provide HTML pages. The client from a browser or calls link on the page and the server receives the message and sends the corresponding page.
* Mail Servers - Manages the sending and receiving mail from a group of users (the server does not need to be very powerful). The server should use only one e-mail protocol.
* - Object Server allows you to store items that can be activated remotely. Customers may be able to activate the objects that are on the server.
* Print Servers - Managing print requests from clients. The client sends the print request, the server receives the request and places it in the print queue, the printer commands to conduct operations and then notifies the client computer just as their respective printing.
* Application servers - It is dedicated to a single application. It is basically an application that customers can access.
Software Components:
There are three basic software components:
* Introduction - It is about presenting the user with a set of visual objects and carry out the processing of the data produced by it and those returned by the server.
* Application logic - This layer is responsible for the information processing that takes place in the application.
* - This database consists of files containing the application data.
Client / Server Architecture
Below are client-server architectures most popular:
* Client-Server Architecture Layers - Two consists of a presentation layer and application logic and the other from the database. This architecture typically used in the following situations:
*
When required little processing of data in the organization.
When you have a centralized database on a single server.
When the database is relatively static.
When you require minimal maintenance.
CLIENT/SERVER TWO LAYERS
* Client-Server Architecture Three Layers "consists of a presentation layer, another layer of application logic and another layer of the database. This architecture typically used in the following situations:
When a lot of data processing required in the application.
or in applications where the functionality is in constant change.
or When the processes are relatively closely related to the data.
or When the technology required to isolate the database to make it easy to change.
or when required to separate the client code for easier maintenance.
or is very suitable for use with object-oriented technology.
PROTOCOL
Definition:
It is a well-known set of rules and formats used for communication between processes that perform a certain task. It takes two parts:
* Specification of the sequence of messages exchanged.
* Specifying the data format of the messages.
A protocol allows heterogeneous components of distributed systems can be developed independently, and through software modules that make up the protocol, there is a transparent communication between the two components. It is worth mentioning that these components of the protocol should be both the receiver and the transmitter.
Examples of protocols used in distributed systems:
* IP: Internet Protocol .- Protocol Network Layer, which defines the basic unit of data transfer and is responsible for routing information to reach your destination on the web.
* TCP: Transmission Control Protocol .- Protocol Transport Layer, which allows you to split and sort the information to be carried in smaller packets for transmission and reception.
* HTTP: Hypertext Transfer Protocol .- Protocol application layer, allowing the service message transfer hypertext between client and server WEB.
* SMTP: Protocol .- Simple Mail Transfer Protocol application layer, which allows sending e-mail over the network.
* POP3: Post Office Protocol .- Protocol application layer, which allows the management of mail on the Internet, ie allows a workstation to retrieve emails that are stored on the server.
Middleware
Definition:
Intermediate software layer between the client and the server. It is the software layer that allows us to manage communications mechanisms. For example, if the request is a website from a browser on the client, the middleware determines the location and sends a request for that page. The Web server interprets the request and sends the page to middleware, who directs the browser on the client machine that requested it.
There are two types:
* Intermediate Software general. General services needed by all clients and servers, for example, software for communications using TCP / IP, the operating system software, for example, stores the files distributed authentication software, middleware messaging clients servers and vice versa.
* Software services through. Software associated with a particular service, for example: software that allows two BD connect to a network client / server (ODBC: Open Connectivity BD), software distributed object technology such as CORBA allows distributed objects created in different languages coexist on the same network (exchange messages), middleware for groupware, middleware, security associated with specific products (Secure Connections: Sockets, etc.).
Features:
* Service independent of their location, operating system and communication protocols.
* Allows the coexistence of different services in one system.
* Allows transparency in the system.
* Traditional Model: Monitor teleprocessing or CICS, Tuxedo, Encina.
* OO Model: CORBA.
DISTRIBUTED OBJECTS
Definition:
In the client / server systems, a distributed object is one that is managed by a server and its clients invoke its methods using a "remote method invocation." The client invokes the method via a message to the server that manages the object, the object executes the method on the server and the result is returned to the client in another message.
Object-oriented technologies distributed:
The three most important technologies used in this field are:
1. Remote Method Invocation RMI .- .- fremework was the first to create distributed Java systems. The system's Remote Method Invocation (RMI) allows Java, an object that is running on a Java Virtual Machine (VM), call methods of another object in another VM is different. This technology is associated with the Java programming language, ie that allows communication between objects created in this language.
2. DCOM Distributed Component Object Model .- .- The Distributed Component Object Model, is included in Microsoft operating systems. It is a set of concepts and program interfaces in which client program objects can request services from server program objects on other computers within a network. This technology is associated with the Microsoft product platform.
3. CORBA Common Object Request Broker .- Architecture .- Technology introduced by the Object Management Group OMG, created to establish a platform for managing remote objects independent of programming language.
Distributed Data Base
Definition:
It is a collection of data (database) on a network built and owned, of course, a single distributed system, which meets the following conditions:
* The information in the database is physically stored in different websites.
* In each website, the information is established as a database itself.
* The local databases have their own local users, their own DBMS and programs for transaction management, and its own local administrator data communication.
* These local databases must have an extension, which manages the necessary functions of society, the combination of these components with the management systems local database, is what is known as System Manager Distributed Database.
* This global manager allows users to access data from anywhere on the network, as it was done with data from its local database, ie for the user, there should be no difference in working with local data data from other websites.
Consequently, the distributed database is a virtual unit, whose parts are physically stored in multiple databases "real" different locations in different sites.
Example of a distributed database:
Consider a bank with three branches, each branch, a computer controls the terminals of the same and the system of accounts. Each computer with your local system accounts in each branch is a "siege" of the BDD, the computers are connected by the network. During normal operations, applications in the branch terminals need only access the database with it. Since only access the same local network, are called local applications.
From the technological point of view, apparently the important thing is the existence of some transactions that access to information on more than one branch. These transactions are called global transactions or distributed transactions.
The existence of global transactions will be considered as a characteristic that helps us to discriminate between BDD and a set of local databases.
A typical global transaction would be a transfer of funds from one branch to another. This application requires to update data in two different branches and make sure the real update on both sites or none. Ensure the proper functioning of global applications is a difficult task.
Advantages of Distributed Database
* Decentralization .- In a centralized / distributed, there is an administrator who controls the entire database, however in a distributed system there is a global manager has a general policy and delegating some functions to the managers of each locality to establish and local policies and efficient work.
* Economy: There are two aspects to consider.
The first are the costs of communication, if the databases are widely dispersed and applications make extensive use of the data can be more economical to split the application and executing it locally.
The second is that costs less to create a system of small computers with the same power as a single computer.
* Improved performance: As the data will be stored and used where they are generated, which will distribute the complexity of the system at different sites in the network, optimizing the work.
* Improved reliability and availability: The failure of one or more locations or a communication link does not imply total system inoperability, even if we have duplicate data there may be a total availability of services.
* Growth: It is easier to accommodate the increased size in a distributed system, because the expansion is done by adding processing power and storage on the network by adding a new node.
* Flexibility: Allows local and remote access transparently.
* Availability: May be duplicate data so that multiple people can simultaneously access efficiently. The downside, the system database administrator must worry about the consistency of them.
* Concurrency Control: The system database administrator is responsible for managing local concurrency efficiently.
Disadvantages Of The Distributed Database
* Performance is an advantage could be contradicted by the nature of the workload, since a node can be overwhelmed by the strategies used concurrency and failures, and local access to data. This situation can occur when the workload requires a large number of concurrent updates of data that must be duplicated and distributed.
The reliability of distributed systems, this is one that, since in this type of database, there are many factors to take into account as: The reliability of computer, network, management system distributed database , transactions and error cups workload.
* The more complex plays against this type of system, because often translates into high costs of construction and maintenance. This is due to the large number of hardware components where many applications are likely to fail. For example, concurrency control and failover, requires highly specialized personnel and for that expensive.
* The processing of distributed database is difficult to control, because these processes often take place in the areas of work of users, and even physical access is controlled, leading to a lack of data security.
WEB Development
Special case of client-server systems with remote representation. Where there is a standard protocol: HTTP and middleware called WebServer. At present the application of Internet-based computer systems is an essential tool for organizations that want to have some competitive presence.
Technology application logic in the web server:
1. CGI: Common Interface Gateware ..- are programs that run on the server can serve as a gateway with an application or database or to generate html documents automatically. Each http request is running a process, which analyzes the request and generates a result. They are independent of the OS, and have the advantage that, given a program written in any language, is easily adaptable to a CGI. Among the languages used for CGI, the most popular is Perl.
2. Servlets: Small Java programs that run persistently on the server, and that, therefore, have a very rapid activation, and a simpler way to do it. These programs process a request and generate the answer page.
When called by the browser, the ASP engine of IIS (Internet Information Server) automatically takes care of running it as is usually done with any program, but whose output is provided through the browser that invoked. It is a Microsoft proprietary environment and scripting language default IIS is the VBScript, but can be changed.
3. ASP (Active Server Pages): An ASP page is a plain text file containing the script, along with the HTML necessary, and saved with the extension ". Asp.
4. JSP (Java Server Pages), consisting of small pieces of Java code that are inserted into web pages, similar to ASPs. Both options, today, are very popular in e-commerce sites. Faced with the ASPs, the advantage that is independent of the operating system and processor of the machine.
Considerations to be taken in the development of a WEB
5. PHP is a language whose programs are also inserted into web pages, as well as ASPs and JSPs, it is much simpler to use, and access to databases from him is very simple. It is tremendously popular in e-commerce sites with little traffic, ease of development and speed of implementation.
1. Separate application logic from the user interface.
2. Using standard methods of communication between the application logic and user interface.
3. Tools for easy adaptation of applications to new devices that will appear.
4. Define the communication cost must assume the organization.
5. Taking into account the replication process, frequency and bandwidth consuming.
6. Rethinking the suitability of the location of each process.
7. The relevant evidence in designing and implementing communication protocols.
Wireless Technologies
Wireless technologies, in recent years, are reaching the maturity necessary to allow access to a network, without requiring the use of traditional cable connection.
Here is a set of technologies that contribute to the development of wireless connections:
GSM (Global System for Mobile communications):
The global system for mobile communications, is a standard for communication using mobile phones incorporating digital technology. Allows the system to use SMS (Short Message Service) to send and receive text messages. It is the technological evolution of similar mobile phones.
GPRS (General Packet Radio Service):
It is a transmission system which operates in the mobile environment. In this system, each voice call or data connection each occupies a channel exclusively for the duration of the call or connection, therefore, a user can make use of multiple channels and one channel can be shared by several users. It is based on packet switching and allows data transmission at high speed Internet access.
UMTS (Universal Mobile Telecommunications System):
The Universal Mobile Telecommunications System, will provide mobile broadband and transmit a significant amount of data over the network. With this third generation technology will be video calls, download video, electronic greeting exchange, strolls 'virtual' for homes for sale, etc ... everything from mobile phones.
WAP (Wireless Application Protocol)
Wireless Application Protocol (WAP) is an intelligent digital messaging service for cell phones and other mobile terminals that allow you to view Internet content in special text format on a cell phone with GSM technology.
WAP has become the global standard for providing information to wireless terminals.
WAP uses a micro with a new standard called WML (similar to HTML) optimized for wireless handsets.
WAP GSM hides the complexity of the applications and the Web has done for the Internet. Expand a variety of transportation options and devices, including SMS, 9.6 kbit / s GSM and GPRS data.
Bluetooth
It is the policy that defines a global standard for wireless communication over short distances, which enables voice and data between computers using an RF link. The main objectives to be achieved with this standard are:
* Facilitate communication between mobile and fixed equipment.
* Remove cables and connectors between them.
* Provide the ability to create small wireless networks and provide data synchronization between our personal computers.
Bluetooth technology including hardware, software and interoperability requirements.
WIFI (Wireless Fidelity):
Technology is used in a wireless network or for data communication between computers located within the same area (indoor or outdoor) coverage.
Conceptually, there is no difference between a wired network (coaxial cable, fiber optics, etc..) And one wireless. The difference is that wireless networks transmit and receive data via electromagnetic waves, which means eliminating the use of wires and therefore full flexibility in communications.
WiMAX (Worldwide Interoperability for Microwave Access):
It is the name you know the 802.16a standard, a wireless standard approved in January 2003 at the WiMax Forum, formed by a group of 67 companies, which offers greater bandwidth and range that the family of WiFi standards, composed of the 802.11a, 802.11b and 802.11g.
As we say, the difference between these two wireless technologies are its range and bandwidth. While WiFi is designed for offices or to cover relatively small areas, WiMax offers data transfer rates of 70Mbps at distances up to 50 kilometers from a base station. By comparison, the transfer rate is 11Mbps WiFi and the distance of 350 meters in open areas.
Advantages Of Distributed Systems
Regarding Centralized Systems:
* One of the advantages of distributed systems is the economy, it is much cheaper, adding servers and clients when required increased processing power.
* Work together. For example, in an assembly factory, the robots have their different CPUs and perform joint actions, guided by a distributed system.
* Have greater reliability. To be distributed the workload on many machines the failure of one of them does not affect the other, the system survives as a whole.
* Ability to incremental growth. You can add processors to the system by increasing its power gradually as needed.
With respect to PCs Independent:
* You can share resources like software and peripherals, very expensive. Example: laser printer, mass storage devices, etc.
1. By sharing resources, meet the needs of many users at once. Example: airline reservation systems.
* It provides a better communication between people. Example: e-mail.
* Have greater flexibility, the workload can be distributed among different computers.
Disadvantages Of The Distributed Systems
* The main problem is the software, design, implementation and use of distributed software, it presents numerous drawbacks. The main questions are:
o What type of S. O., programming language and applications are suitable for these systems?.
or How much should users know the distribution?.
or How much should the system and how much do users?.
The answer to these questions is not uniform among specialists, as there is a wide diversity of approaches and interpretations about them.
* Another problem has to do with communication networks. For example: "Lost Message, saturation in traffic, etc.
* A problem that may arise when sharing data is the safety of them.
It is generally considered that the advantages outweigh the disadvantages, if the latter are given seriously.
Challenges
* Heterogeneity - The interconnection components, especially when using the Internet, is given on a wide variety of hardware components and software, which require certain standards to allow this communication. The Middleware are software components that allow an abstraction of programming and masking the underlying heterogeneity of the networks. Also, the middleware provides a uniform computational model.
* Extensibility - Determines whether the system could be extended and reimplemented in various aspects (add and remove components.) The integration of components written by different programmers is a real challenge.
* Security - great importance for the intrinsic value for users. It has three components:
o Confidentiality .- Protection against unauthorized individuals.
or Integrity .- Protection against alteration or corruption.
o Availability .- Protection against interference with the procedures for access to resources.
* Scalability .- The system is scalable if it retains its effectiveness on the occurrence of a significant increase in the number of appeals and the number of users.
* Bug Treatment .- The possibility for the system to continue functioning of any component fail independently, but that will have to have some alternative solution. Techniques for failover:
*
or fault detection. Some errors are detectable, with checks for example.
or fault masking. Certain weaknesses can be hidden or reduced.
or fault tolerance. Especially on the Internet there are many failures and is not very convenient to hide them better tolerate and continue. Ex: Lifetime of a search.
or failover. After a failure one must have the ability to return to a previous state.
or redundancy. Can be used to tolerate certain failures (DNS, BD, etc.).
* Concurrency. Sharing resources by customers at a time.
* Transparency. It is hiding the user and the application programmer of the separation of the components in a distributed system. It identified eight forms of transparency:
*
o Access. You access local and remote resources identically.
o location. Provides access to resources without knowing their location.
o competition. Using a shared resource without interference.
or replication. Allows you to use several copies of each resource.
or face failure. Hides mistakes.
or mobility. Allows the relocation of resources and customers without compromising the system.
or performance. Allows you to reconfigure the system to improve performance according to load.
o When scaling. Allows the system and applications expand in size without changing the structure of the system or application algorithms.
Applications
* Commercial Systems - They were initially built with dedicated hardware and centralized environments are, by virtue of their geographic distribution and need for access to different systems, ideal for deployment in distributed systems. Require certain features of reliability, security and protection. Some examples are:
or reservations systems of airlines.
or banking applications.
Boxes and management or department stores.
* WAN networks - Due to the significant growth of this type of network (Internet), has taken important exchange of information through the network. And for this we have the following examples:
or common services offered by the Internet: e-mail, news services, file transfer, the WRLD Wide Web, etc.
* Multimedia Applications - They are the latest additions to distributed systems. These applications impose certain hardware needs to have a transfer speed and regularity of a large amount of data. Examples of these systems are:
or videoconferencing.
or Remote.
or multi-user games.
or computer-assisted teaching.
* Areas of Informatics Distributed Systems - This section takes into account the full range of applications of distributed systems, because its design involves many areas, for example:
*
or communications.
or distributed operating systems.
or distributed database.
or distributed file servers.
or distributed programming languages.
or fault-tolerance systems.