تبليغاتX
XGRID تکنولوژی
 
XGRID تکنولوژی
 
 
پیاده سازی سیستم های توزیع شده
 


مراحل ایجاد یک برنامه client/server در دلفی

بسمه تعالی
مراحل ایجاد یک برنامه clint/server
توضیح : خیلی از عزیزان برای شبکه کردن indy را توصیه می کنند . درست است INDY برای ارسال پیام در شبکه و ایمیل و ... مناسب است ولی برای بانکهای اطلاعاتی درد سر بسیار دارد . در این ثال از datasnap استفاده شده که کار را بسیار راحت می کند .

الف : برنامه سرور
1-یک پروژه جدید باز کنید و با عنوان سرور ذخیره نمایید
2- به قسمت file / new / other/multitier رفته و بر روی remote data server کلیک نمایید
3- حال یک پنجره با عنوان remote data module wizard ایجاد می شود که در قسمت CoClass Name یک نام برای سرور انتخاب نمایید . و به قسمتهای دیگر کاری نداشته باشید و ok را بزنید .
4- بلافاصله یک datamodule جدید با نام سرور (نامی که در قسمت class name انتخاب نمودید ) ایجاد می شود .
5- حال با استفاده از ado یا bde یا ... به با نک اطلاعاتی وصل شوید . مثلا با adoquery به یک جدول از یک بانک اطلاعاتی sql server وصل شده . حال adoqueryr را فعال سازید تا ارتباط برقرار شود . در پنجره مشخصات adoquery خاصیت active را true نمایید .
6- در قسمت dataacess یک DataSetProvider1 را بر روی datamoule که ایجاد کرده ایم قرار می دهیم و روی dataset در پنجره مشخصات کلیک نموده تا نام ارتباط بانک اطلاعاتی نمایان شود ( adoquer در مثال بالا)
7- پس از اطمینال از اتصال صحیح با نک اطلاعاتی پروژه را ذخیره و یک بار اجرا نمایید تا سرور در شبکه ثبت شود .
8- توجه داشته باشید که برنامه سرور فقط محل نگهداری بانک اطلاعاتی و کنترل اتصالات و کاربران است . پس کار دیگری را انجام نمی دهیم و حال فایل اجرایی برنامه سرور را اجرا می کنم.

ب نوشتن برنامه کلاینت
1- یک پروژه جدید با عنوان کلاینت ایجاد نموده و ذخیره نمایید .
2- در روی فرم از قسمت datasnap یک SocketConnection1 را روی فرم قرار داه . در قسمت adress نام ip کامپیوتر سرور را وارد نمایید.(مثلا ip سرور در برنامه محل کار من 10.20.1.93 است ) . اگر ای پی سرور را نمی دانید می توانید نام کامپیوتر سرور را وارد کنید .حال در قسمت servername نام سروری را که در برنامه سرور ثبت کرده اید را انتخاب نمایید . اگه پیام خطا داده احتمالا در تنظیمات شبکه یا خود شبکه ایراد است . وقتی نام سرور را نتخاب کردید گزینه conecct از مشخصات SocketConnection1 vh را true کنید . اگر true شد یعنی ارتنباط با سرور بر قرا است .
3- حال در قسمت datascess یک ClientDataSet1 بر روی فرم قرار داده و تنظیمات زیر را انجام دهید
A: در قسمت remote server کلیک نمایید تا نام socketConnection1 ظاهر شود .
b: در قسمت provider name کلیک کنید تا نام DataSetProvider1 ظاهر شود
c:حال خاصیت active را true کنید .
4- حال از قسمت dataascess یک datasource1 بر روی فرم قرار دهید و خاصیت datadet آن را با نام clientdataset1ظاهر شود .
5- حال از قسمت data control یک datagrid روی فرم قرار داده و خاصیت datasource آن رو datasource 1 انتخاب کنید . می بینید که اطلاعات سرور نمایش داده می شود .

توضیحات . چون ما از SocketConnection2 استفاده می کنیدم که بر اساس tcp/ip عمل می کنید (پشتیبانی سوکت ها ) باید برنامه فعال سوکت ها فعال شود . برای این کار مرحل زیر را انجام دهید
1- در قسمت run ویندوز دستور cmd را تایپ نمایید .
2- پس از ورود به محیط cmd دستور مقابل را تایپ نمایید scktsrvr - install .

توضیح 2 : فرض بر این است که کلیه خوانندگان عزیز با بانک اطلاعتی و ارتباط با ان آشنایی دارند . اگر می خواهید به نتیجه برسید نامگذاری اشیاعی که بر روی فرم ها و ... می گذارید عین مثال باشد .
امیدوارم مورد استفاده قرار گرفته باشد .

منبع : http://delphi-7.blogfa.com

 

 

 |+| نوشته شده در  جمعه یکم شهریور 1387ساعت 11:16 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

(thread)و سیستمهای multitasking

در تکنیک چندنخی (multitasking) یک فرایند (process) که برنامهای در حال اجراست , میتواند به بخشها یا نخهایی (بندهایی ) تقسیم شود که میتوانند به صورت همزمان اجراء شوند.
برنامههایی که چند وظیفه مستقل از هم را انجام میدهند میتوانند به صورت چن نخی نوشته شوند. گاهی اوقات به سیستمهای multithreading سیستمهای چند تکلیفی یا چند وظیفه ای (multitasking)هم گفته میشود.
فرآیند (process)یا پردازش اساس یک برنامه در حال اجراست که منابعی از سیستم به آن تخصیص داده شده است (شامل رجیسترها,حافظه,فایلها و دستگاهها).فرآیند میتواند مجموعهای از یک یا چند نخ باشد. به نخ, رشته یا بند هم گفته میشود . کلیه اطلاعات مربوط به هر پروسس , در یکی از جداول سیستم عامل به نام جداول Process Control Block=PCB ذخیره میشود. این جدول یک آرایه یا لیست پیوندی از ساختارهاست که هر عضو آن مربوط به یکی از پروسسهاست که در حال حاضر موجودیت دارد.
اطلاعات موجود در PCB عبارتند از : حالت جاری پردازش ,شماره شناسایی پردازش , اولیت پردازش , نشانی حافظه پردازش , نشانی محل برنامه پردازش بر روی دیسک , نشانی سایر منابع پردازش , محلی برای حفظ ثباتها .

منبع :شبه رشد

 

 |+| نوشته شده در  شنبه سی و یکم فروردین 1387ساعت 5:42 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

Grid Engine 6.1u4 Release

code_000000237891Small.jpgThe Grid Engine project has announced a new maintenance release (version 6.1 Update 4) of its software. This release fixes some 50+ issues found in earlier versions. In particular, couple of problems causing qmaster crashes have been resolved, and so were several dbwriter and accounting issues. More specifically, if you were wondering why your array job task usage is missing from the accounting file, you should consider installing this release. The new version of the software is available for download here.
 
 
 
منبع : http://gridgurus.typepad.com
 
 
 |+| نوشته شده در  پنجشنبه بیست و نهم فروردین 1387ساعت 11:9 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

MPI vs. Compiler

Marlborough, MA, ? April 01, 2008 ? Scali, the leader in higher performance computing software, today announced new benchmark results provided by Scali using the SPEC MPI2007 benchmark suite on the newly released Scali MPI Connect version 5.6.1. As of today?s release, Scali cements its leadership and has the highest SPECmpiM_base2007 score for all systems ranging from 32 to 128 cores. Further, as a courtesy to the industry, Scali has submitted results using different compilers, enabling studies of which cluster components truly provide differential performance benefits. For a 32-node cluster system using 128 cores, the results show the compiler difference to be a modest 6 percent. However, on similarly equipped systems, these new results show that Scali MPI Connect extracts 18 percent more performance than HP-MPI (1).

?It is our top priority to deliver the best performing MPI in the industry and the newly submitted results underscore that commitment. Out of the 13 applications which constitute the SPEC MPI2007 medium suite running on 32 nodes and 128 cores, three of the applications performed within +/- 2 percent as compared to a similar system using HP-MPI. All the other 10 applications perform significant faster with Scali MPI Connect. For example the Quantum Chemistry application Socorro performs 21 percent faster with Scali MPI Connect. Additionally, the result for the POP2 benchmark, a climate modeling test using the Parallel Ocean Program (POP) showed a 336 percent performance advantage over the HP-MPI based system.?, said Hakon Bugge, CTO of Scali. ?We will continue our leadership role in providing the HPC community with the data they need to make important technology decisions. The choice is clear, over all; Scali MPI Connect is the best performing MPI in the market.?

SPEC MPI2007

SPEC MPI2007 is SPEC's benchmark suite for evaluating MPI-parallel, floating point, and compute intensive performance across a wide range of cluster and SMP hardware. MPI2007 continues the SPEC tradition of giving HPC users the most objective and representative benchmark suite for measuring the performance of SMP (shared memory multi-processor) systems. SPEC reviews and publishes submitted results on their website at: http://www.spec.org/mpi2007/results/ . SPEC? and the benchmark name SPEC MPI? are registered trademarks of the Standard Performance Evaluation Corporation. Competitive benchmark results stated above reflect results published on www.spec.org as of April 1, 2008.

About Scali and Scali MPI Connect

Founded in 1997, Scali is the leading developer of a fully integrated message passing interface (MPI) library that enables companies to take advantage of premier interconnect technologies to build high performance clusters. Scali MPI Connect is designed to enable applications to run at maximum performance through its unique, high performance, patent pending technology. Scali MPI Connect supports a wide range of customer environments while lowering the number of binaries required, and delivers superior application performance. Hundreds of companies, including Goodyear, Daimler AG, Lockheed Martin, US Army and Naval Air, Schlumberger and Shell benefit from using Scali?s MPI libraries. The company is headquartered in Marlborough, Massachusetts with research and development in Oslo, Norway and Nagpur, India. Visit http://www.scali.com for more information.

? 2008 Scali, Inc., All rights reserved. Scali and Scali MPI Connect are trademarks of Scali, Inc. All other service marks, trademarks, and registered trademarks are the property of their respective owners.

(1) The two systems labeled ? HP Proliant BL460c blade Cluster Platform 3000BL? and ? LS-1, Scali MPI Connect 5.6.1, Intel 9.1 compilers?, are both using Mellanox based Infiniband DDR HCAs, dual-core Intel Xeon 5160 processors and Intel 9.1 compilers. Using 32 nodes and 128 cores, the HP-MPI based system delivers a SPECmpiM(TM)_base2007 score of 11.9. The Scali MPI Connect based system delivers 14.0 using the same metric, i.e., 18 percent higher score.

منبع : http://www.linuxhpc.org/stories.php?story=08/04/10/8378717

 

 |+| نوشته شده در  پنجشنبه بیست و نهم فروردین 1387ساعت 10:49 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

An Introduction To Distributed Intrusion Detection Systems

What is a dIDS?

A distributed IDS (dIDS) consists of multiple Intrusion Detection Systems (IDS) over a large network, all of which communicate with each other, or with a central server that facilitates advanced network monitoring, incident analysis, and instant attack data. By having these co-operative agents distributed across a network, incident analysts, network operations, and security personnel are able to get a broader view of what is occurring on their network as a whole.

A dIDS also allows a company to efficiently manage its incident analysis resources by centralizing its attack records and by giving the analyst a quick and easy way to spot new trends and patterns and to identify threats to the network across multiple network segments. This article will discuss distributed intrusion detection systems, including the general setup of a dIDS and a fictional case study to demonstrate the distributed analysis abilities. It will also try to give the reader some insight into the benefits of running a dIDS system, from both incident analyst and corporate views.

Overview

The Central Analysis Server

The central analysis server is really the heart and soul of the operation. This server would ideally consist of a database and Web server. This allows the interactive querying of attack data for analysis as well as a useful Web interface to allow the corporate guys upstairs to see the current attack status of your network. It also allows analysts to perform pre-programmed queries, such as attack aggregation, statistics gathering, to identify attack patterns and to perform rudimentary incident analysis, all from a Web interface.

The Co-operative Agent Network

The co-operative agent network is one of the most important components of the dIDS. An agent is a piece of software that reports attack information to the central analysis server. The use of multiple agents across a network allows the incident analysis team a broader view of the network than can be achieved with single IDS systems.

Ideally these agents will be located on separate network segments, and geographical locations (See diagram below.) The agents can also be distributed across multiple physical locations, allowing for a single incident analysis team to view attack data across multiple corporate locations.

Although any IDS could be used on the agent machines, it is highly suggested that Snort be used. It has been demonstrated, however, that any attack logging system can be incorporated into this agent network. This can range from router attack logs, to ipfw, firewalls, and even Windows personal firewall systems.

Attack Aggregation

Attack aggregation is another core part of the dIDS system. This part of the system is programming logic based on the central server. Aggregation simply refers to the method in which users group or order the information gathered from the agent network. One example of this would be to aggregate information according to attacker IP, putting all attacks from an attacking IP together with other attacks from the same IP. Another example is the aggregation of attack data according to destination (attacked) port, or even by date and time. Uses for aggregation will be explained later in this paper.

Advantages of a dIDS

Why a dIDS?

Due to the greater view the agent allows the analyst to achieve, the dIDS offers the incident analyst many advantages over other single mode IDS systems. One of these advantages is the ability to detect attack patterns across an entire corporate network, with geographic locations separating segments by time zones or even continents. This could allow for the early detection of a well-planned and coordinated attack against the organization in question, which would allow the security people to ensure that targeted systems are secured and offending IPs are disallowed any access. Another proven advantage is to allow early detection of an Internet worm making its way through a corporate network. This information could then be used to identify and clean systems that have been infected by the worm, and prevent further spread of the worm into the network, therefore lowering any financial losses that would otherwise have been incurred.

The second major advantage is that a single analysis team can now do what previously required several incident analysis teams due to physical distance. This obviates the need to pay for distinct incident analysis teams for each separate geographic location of the organization’s offices. Another issue that it addresses is attacks from within the corporations network by angry, upset, or bored employees. By tying the central analysis server in with the companies DHCP or RADIUS servers, the incident analysts can track down people launching attacks from within the company, and track what they have attempted to do, as well as provide evidence against the perpetrators.

Incident Analysis With dIDS

Incident analysis using the dIDS system is really what it is all about. This is where all the power, potential, flexibility, and strength of the system as a whole lies. It is the reason why the dIDS was first conceptualized, to allow for advanced analysis of attacks occurring over multiple network segments, and at an advanced level.

Analysis Using Aggregation

Aggregation is the main component used to facilitate this advanced method of analysis across a networks multiple segments. By aggregating similar or related data, the analyst is able to easily see how an attack progressed through the different stages: from active network reconnaissance, to the final attack. It is possible for the incident analyst to see what kind of time frame the attacker was working within and to correlate other attack attempts against the networks to determine if there were multiple co-operative attackers. The most common methods of aggregation are according to attacker IP, destination port, agent ID, date, time, protocol, or attack type.

  • Aggregating by attacker IP allows the analyst to view the steps of an attacker’s attempt from start to finish across the multiple network segments.
  • Aggregating by destination port allows an analyst to view new trends in attack types, and to be able to identify new attack methods, or exploits being used.
  • Aggregating by agent ID allows an analyst to see what variety of attacks and attackers have made attempts on the specific network segment the agent is on. Consequently, the analyst can determine if there are multiple attackers working in conjunction, or if there are network segments that are of more interest to attackers than others, thereby giving the security team a list of common targets to work on.
  • Aggregating by date and time allows the analyst to view new attack patterns, and to potentially identify new worms or viruses that are only triggered at certain times.
  • Aggregating by protocol helps in a purely statistical manner, which could allow an analyst to identify new attacks in particular protocols, or identify protocols on a network segment that should, under no circumstances, be there anyhow.
  • Aggregating by attack type also allows for attack pattern matching and to correlate coordinated attacks against multiple network segments.

By utilizing all of these aggregation methods, the analyst is given an unlimited number of different sets of data to correlate against other attacks, detect coordinated distributed attacks, attacks from within their own network, and to detect new exploits and vulnerabilities being deployed by the underground hacking community.

The broad view given by the dIDS system also allows the analyst to ensure a minimum of false positives and false negatives by being able to see beyond a single network segment, into the network as a whole. For example, if the analyst saw that one out of five network segments got seven unrequested ICMP Echo packets, it could be a simple issue of false addressing or improper routing somewhere. However, if the analyst were to see that three separate network segments were reporting seven unrequested ICMP Echo packets, it is much more likely that these packets would be malicious in nature. This would cause the analyst to take note of the activity and perhaps check into the incident further or flag it for review at a later date.

Analysis Case Study

You come into the office early one morning, boot up your PC, and surf to your Central Analysis server to see what has been going on throughout the night. First thing you do is check incident reports aggregated by the attackers IP. You notice that slews of probes were sent to two internal use IIS Web Servers, located at 172.16.2.106, and 172.16.1.98. These segments’ agent Ids are “Main Office.” and “Production” The following shows up on the incident report:

Source IP: 206.219.23.16
Attack Time Agent Alias Target IP # of Machines
Targeted
IP
Protocol
Target
Port
# of
Probes
25 Sep 2001 16:23:45 Main Office 172.16.2.106 1 6 80 12
25 Sep 2001 16:24:01 Production 172.16.1.98 1 6 80 12
25 Sep 2001 16:24:35 Main Office 172.16.2.106 1 6 27374 3
25 Sep 2001 16:24:01 Production 172.16.1.98 1 6 27374 3

Now we’ll want to see if any other attacks were attempted on either of these machines. So, we’ll aggregate the attack data by the target IP addresses, which are included in the previous report. Now we get two reports.

Target IP: 172.16.106
Attack Time Agent Alias Target IP # of Machines
Targeted
IP
Protocol
Target
Port
# of
Probes
25 Sep 2001 16:23:02 Main Office 24.26.198.98 1 6 21 3
25 Sep 2001 16:23:21 Main Office 24.26.198.98 1 6 137 5
25 Sep 2001 16:23:45 Main Office 206.219.23.16 1 6 80 12
25 Sep 2001 16:24:35 Main Office 206.219.23.16 1 6 27374 3

Target IP: 172.16.1.98
Attack Time Agent Alias Target IP # of Machines
Targeted
IP
Protocol
Target
Port
# of
Probes
25 Sep 2001 16:23:14 Production 24.26.198.98 1 6 21 3
25 Sep 2001 16:23:29 Production 24.26.198.98 1 6 137 5
25 Sep 2001 16:24:01 Production 206.219.23.16 1 6 80 12
25 Sep 2001 16:24:46 Production 206.219.23.16 1 6 27374 3

Next we’ll combine these two reports by asking the database to give us all attack data with an attacker IP of 24.26.198.98, and 209.219.23.16, against “Production” and “Main Office.” We’ll also have it sort by date and time:

Source IP: 24.26.198.98 OR 206.219.23.16
Attack Time Agent Alias Target IP # of Machines
Targeted
IP
Protocol
Target
Port
# of
Probes
25 Sep 2001 16:23:02 Main Office 24.26.198.98 1 6 21 3
25 Sep 2001 16:23:14 Production 24.26.198.98 1 6 21 3
25 Sep 2001 16:23:21 Main Office 24.26.198.98 1 6 137 5
25 Sep 2001 16:23:29 Production 24.26.198.98 1 6 137 5
25 Sep 2001 16:23:45 Main Office 206.219.23.16 1 6 80 12
25 Sep 2001 16:24:01 Production 206.219.23.16 1 6 80 12
25 Sep 2001 16:24:35 Main Office 206.219.23.16 1 6 27374 3
25 Sep 2001 16:24:46 Production 206.219.23.16 1 6 27374 3

This basically, gives us a step-by-step view of how the attack was carried out by the two attackers. This example is very simplistic, but there have been several demonstrated highly complex attacks that have been identified using this analysis method.

Using these reports, it would be apparent to the analyst that a coordinated attack was attempted against both of these IIS servers. Further analysis can be achieved by viewing the actual IDS logs submitted to the central analysis server, and a decision on network vulnerability to attempted attacks can be performed, as per the GIAC standard for incident analysis reports. It would also be advisable to see the aggregated report on the second attackers IP, to see if any other systems had attack attempts from this system, that were not included in this coordinated attack. It has been demonstrated in the past that this system helps the analyst identify large scale, coordinated attacks against large corporate networks, attacks that might otherwise have gone unnoticed due to communications breakdowns between teams and the inability to correlate all the data involved across multiple network segments without a system like this.

Conclusion

The dIDS system gives the analyst a quicker, easier, more efficient method to identify coordinated attacks across multiple network segments, and to trace back the activities of the attackers. The system also, ultimately, saves the corporation whose networks it is deployed on money by reducing the number of Incident Analysts needed, as well as the amount of time required to gather logs from the various IDS systems setup in a large corporate network. By having all of these attack records stored in a single place, it allows the analyst much more flexibility in discovering attack patterns, and other attack issues which may have otherwise gone unnoticed.

As attackers, and attack methods become increasingly complex, the need for a dIDS system in large corporate, and military networks increases drastically. With the increased complexity of these attacks, analysts are leaving themselves open to the problems of communications breakdowns, where one analyst sees a single attack on his segment, and dismisses it as nothing. While several other segments receiving the same attacks in a coordinated manner, their analysts may be dismissing the seriousness of the attack. However, when all the attack data is viewed together, a dramatically different perspective the attack may emerge.

dIDS systems are the next logical level for IDS systems to move to. They are able to be setup with pre-existing architectures and IDS systems, making them even more cost-efficient. It should also be noted that there are currently a few systems in place that fall along the lines of a dIDS. Instead of being based in the corporate environment, focused on in this paper, they are deployed across the entire Internet, which thousands of sensors submitting data to them every day. One such service is SecurityFocus’s ARIS Predictor service, which should be noted due to its large scale demonstration of the use of a dIDS in the reporting of attacks to ISPs, server owners, and their proven ability to identify new worms, and attacks, therefore making the Internet as a whole safer for all.

Nathan Einwechter is currently a Senior Research Scientist with Fate Research Labs, aswell as a System Developer/Incident Analyst with myNetWatchman.Com. While working with myNetWatchman, Nathan assisted in the discovery and analysis of the "W32.Leave.Worm" along with SANS, the FBI, and NIPC. The discovery of which was made possible by analysis of data collected by a dIDS system.



SecurityFocus accepts Infocus article submissions from members of the security community. Articles are published based on outstanding merit and level of technical detail. Full submission guidelines can be found at http://www.securityfocus.com/static/submissions.html.
 
 
 |+| نوشته شده در  سه شنبه بیستم فروردین 1387ساعت 10:55 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام
Middleware

Middleware در يك سيستم محاسباتی توزيع شده به عنوان لايه نرم‌افزاری تعريف می‌شود كه بين سيستم عامل و برنامه‌ها قرار می‌گيرد و اجرای چند فرايند را بر روی يك يا چند ماشين در شبكه امكان پذير می‌سازد.

Middleware برای انتقال برنامه‌های mainframe به برنامه‌های كلاينت / سرور ضروری است. اين تكنولوژی در سال‌های 1990 تكامل يافت. تكنولوژی‌های Middleware با رشد برنامه‌های مبتنی بر شبكه اهميت پيدا كردند. از سوی ديگر تعداد سيستم‌هايی كه از مجموعه‌ای از ديوايس‌ها تشكيل شده بودند افزايش يافت. هر ديوايس عملكردی را انجام می‌داد كه در شبكه با ساير ديوايس‌ها نظير تلفن‌های هوشمند، كامپيوترهای شخصی، PDA تعامل داشت.

 

عملكردهای Middleware

در هر يك از حالات فوق، برنامه‌ها از نرم‌افزار ميانجی و پروتكل‌های ارتباطی برای انجام عملكردهای زير استفاده می‌كنند:

  • پنهان‌سازی توزيع: توجه به اين واقعيت كه برنامه معمولا از بخش‌های به هم پيوسته‌ای تشكيل شده است كه در مكان‌های توزيع شده اجرا می‌شود.

  • پنهان سازی ناهمگنی اجزای سخت‌افزاری، سيستم‌ عامل‌ها و پروتكل‌های ارتباطی مختلف

  • تهيه رابط استاندارد، يكپارچه و سطح بالا برای توسعه‌گران برنامه‌ها، به گونه‌ای كه برنامه‌ها به سادگی قابل تهيه و استفاده مجدد باشند.

  • تهيه مجموعه سرويس‌هايی برای انجام عملكردهای مختلف همه منظوره.

اين لايه‌های نرم‌افزاری ميانجی، Middleware ناميده می‌شوند.

Middleware با فراهم آوردن محيط برنامه‌نويسی مشترك، پنهان سازی ناهمگونی‌ها، توزيع سخت‌افزار و سيستم عامل زيربنايی و پنهان‌سازی جزييات و برنامه‌نويسی سطح پايين، توسعه برنامه‌ها را آسانتر می‌سازد.

 

برخی‍ از انواع Middleware

Middleware بازتابی: اينگونه Middleware از تكنيك‌های بازتابی برای رسيدن به انعطاف‌پذيری و انطباق با پلاتفرم‌ها استفاده می‌كند.

Middleware رويدادگرا: اين Middleware مفاهيم، طراحی، پياده‌سازی و سرويس‌هايی را در بر می‌گيرد كه از سيستم‌های رويدادگرا پشتيبانی می‌كنند.

Middleware شی‌گرا: Middleware شی‌گرا پارادايم برنامه‌نويسی شی‌گرا را برای سيستم‌های توزيع شده بسط می‌دهد.

Middleware پيام گرا: اين Middleware در لايه‌های پايين مدل شبكه OSI به كار گرفته می‌شود. Middleware‌های مختلف از مدل‌های بربرنامه‌نويسی متفاوت پشتيبانی می‌نمايند. Middleware شی‌گرا متداول‌ترين Middleware است كه در آن برنامه‌ها به صورت آبجكت‌هايی ساخته می‌شوند. CORBA و COM از جمله اين Middleware هستند. Middleware رويدادگرا برای ساخت برنامه‌های توزيع شده غيرمتمركز مناسب است. كنترل فرايند، شبكه‌های خبری اينترنتی از زمره اينگونه Middleware‌ها هستند.

Middleware پيام‌گرا برای برنامه‌هايی كه در آنها پيام‌ها به صورت دائمی ذخيره می‌شوند، مناسب است. برنامه‌های پيام‌رسانی و گردش كار نمونه‌هايی از اينگونه Middleware هستند.

 

طراحی Middleware

Middleware به عنوان واسط بين بخش‌های مختلف برنامه يا بين برنامه‌ها عمل می‌كند. لذا قواعد به كار رفته در معماری نقش اساسی در طراحی Middleware دارند. در اينجا منظور از معماری، معماری كلی سازمان‌ها و الگوهای ارتباطی در زمينه برنامه‌ها و خود Middleware است. هر سيستم Middleware به لايه ارتباطی بستگی دارد. اين لايه امكان عمل بينابينی بخش‌های مختلف را فراهم می‌آورد.

 

چالش‌های فراروی Middleware

هزينه‌ها: هزينه  بكارگيری تكنولوژی Middleware در توسعه سيستم‌ها كاملا به سيستم عامل‌ها و پلاتفرم‌های مورد نياز بستگی دارد. پياده‌سازی Middleware منحصر به فروشنده آن است. لذا به پشتيبانی و نگهداری از جانب فروشنده وابسته است. اين وابستگی تاثير منفی بر انعطاف‌پذيری و قابليت نگهداری سيستم دارد.

پيچيدگی برنامه‌ها: هر چه برنامه‌ها ارتباط درونی بيشتری با هم داشته باشند. تعداد آبجكت‌ها با كاربران و ديوايس‌ها افزايش می‌يابد. اين امر مديريت آبجكت‌ها و پيچيدگی اداره نمودن سيستم را دشوار می‌سازد.

مديريت برنامه‌ها: مديريت برنامه‌های بزرگ، ناهمگون و توزيع شده با مشكلات متعددی از قبيل مسائل امنيتی، نظارتی، وابستگی به چندين زير سيستم، تعريف و پياده سازی خط مشی‌های مديريت منابع روبرو خواهد بود.

 منبع : http://www.pcworldiran.com

 

 |+| نوشته شده در  چهارشنبه چهاردهم فروردین 1387ساعت 11:25 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

MultiThreading چیست؟

مقدمه -
گاهی اوقات ممکن است که شما بخواهید برنامه شما دو یا چند عمل را به طور همزمان انجام دهد و یا اینکه نیاز به انجام عملیاتی که مدت زمان زیادی به طول می انجامد و یا زمان انجام آن معلوم نیست ، باشد ، بدون اینکه برنامه شما از دسترس کاربر خارج شود و به اصطلاح برنامه شما تا پایان یافتن عملیات قفل کند و همچنین کاربر بتواند عملیات را متوقف/معلق/شروع دوباره نماید . در چنین موقعیتی نیاز به MultiThreading حس میشود . به فرض مثال کد زیر را در نظر بگیرید :

کد:
For i As Integer = 0 To 10000000
            For i2 As Integer = 0 To 100
                'Do Nothing
            Next
        Next



هنگامی که این عملیات شروع میشود ، کاربر توانایی کار با برنامه تا پایان یافتن آن را نخواهد داشت .

Thread چیست؟

Thread نامی برای جریان اجرای یک عملیات خاص میباشد و هنگامی که برنامه شما دارای چند Thread میباشد بدان معناست که قسمت های مختلفی از کد برنامه شما به طور همزمان در حال اجرا شدن میباشند . در حقیقت کامپیوتر زمان پردازش یک عملیات را به قسمت(slice) های مختلفی تقسیم میکند و هنگامی که شما یک Thread جدید را آغاز میکنید کامپیوتر قسمتی از زمان را به آن اختصاص میدهد . لازم به ذکر است که برنامه شما از ابتدا دارای یک Thread اصلی (Main Thread) برای اجرا کد مربوط به آن میباشد .

کار خود با Thread ها را آغاز مینماییم :
میخواهیم برنامه ای بنویسیم که تا یک عدد معین عملیات شمارش را انجام دهد .
1 – یک پروزه Windows Apploication به نام MutiThreading Sample ایجاد نمایید .
2 – یک Button به نام btnStart و یک TextBox به نام txtMAX به فرم اضافه نمایید .
3 – یک کلاس به نام clsCounter به پروژه اضافه کرده و کد زیر را در داخل آن قرارهید :

کد:
Public Class clsCounter
    Public MAX As Integer
    Public Event CountingFinished(ByVal Number As Integer)
    Sub StartCounting()
        Dim intTotal As Integer
        For i As Integer = 0 To MAX
            intTotal += 1
        Next
        RaiseEvent CountingFinished(intTotal)
    End Sub
End Class


توضیحات در مورد کد فوق :
• وظیفه این کلاس شمردن از 1 تا مقدار MAX میباشد .
• رویدادی با نام CountingFinished تعریف کردیم که هنگامی که عملیات شمارش به پایان برسد اتفاق می افتد .
• متد StartCounting از 1 تا مقدار intMax را شماره کرده و در هر بار اجرای حلقه یک واحد به مقدار متغیر intTotal اضافه میشود که در نهایت مساوی با مقدار MAXخواهد بود .
• پس از پایان شمارش رویداد CountingFinished را همراه با پاس کردن متغیر intTotal به آن اجرا مینماییم .

حال ما باید در هنگامی که دکمه کلیک میشود یک Thread جدید ایجاد کرده و سپس متد StartCounting کلاس clsCounter را اجرا کرده و رخدادن رویداد CountingFinished را کنترل نماییم . در زمانی که عملیات شمارش انجام میشود ما میتوانیم رابط کاربری را کنترل کرده و کاربر توانایی کار با برنامه را دارد .

حال کد زیر را به پروژه خود اضافه نمایید :

کد:
Sub CountingFinishedEventHandler(ByVal N As Integer)
        System.Windows.Forms.MessageBox.Show("Counting Finished!")
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
        Dim CounterClass As New clsCounter
        Dim CountingThread As New Threading.Thread(AddressOf CounterClass.StartCounting)
        CounterClass.MAX = Val(txtMax.Text)
        AddHandler CounterClass.CountingFinished, AddressOf CountingFinishedEventHandler
        CountingThread.Start()
    End Sub



توضیحات در مورد کد فوق :
•ابتدا یک پروسیجر برای کتترل رویداد CountingFinished مربوط به کلاس Counter ایجاد مینماییم . هنگامی که رویداد اتفاق بیافتد(عملیات شمارش به پایان برسد) ، پیغامی مبنی بر پایان یافتن عملیات به کاربر نشان داده خواهد شد .
• در رویداد Click شی ء btnStart ، ابتدا یک نمونه از کلاس CounterClass ایجاد مینماییم .
• سپس برای ایجاد شی ء Thread ، آدرس متذ clsCounter.StartCounting را به سازنده کلاس Thread پاس مینماییم به طوری که متد clsCounter.StartCounting را بعد از آوردن کلمه کلیدی addressof ، می آوریم .
• بعد ، توسط کلمه کلیدی Addhandle ، کنترل کننده رویداد که CountingFinishedEventHandler نام دارد را به رویداد clsCounter.CountingFinished متصل مینماییم .
• در آخر نیز توسط متد Start مربوط به شیء CountingThread ، عملیات را آغاز مینماییم .

برخی متدهای دیگر مربوط به شی ء Thread :
Suspend و Resume : در حالی که یک Thread در حال اجراست ، توسط متد Suspend میتوانید آن را معلق کنید که منجر به متوقف شدن آن تا زمانی که متد Resume اجرا شود ، خواهد گردید .
Abort : Thread را متوقف میکند .
Sleep : توسط این متد میتوانید اجرای Thread را برای پاره ای از زمان (برحسب میلی ثانیه) به حالت تعلیق دربیاورید .


اولویت بندی Thread ها :
شما کنترل بیشتری بر روی Threadها دارید و میتوانید مقدار زمانی که هر Thread نسبت به دیگر Thread ها دریافت میکند را از طریق خاصیت Priority تنظیم نمایید . این خاصیت توسط یکی از ثابت های شمارشی زیر که عضوی از ThreadPriority میباشد تنظیم میشود :
ThreadPriority.AboveNormal : اولویت بالاتری به Thread میدهد .
ThreadPriority.LowerPriority : اولویت پایین تری به Thread میدهد .
ThreadPriority.HighestPriority : بالاترین اولویت را به Thread میدهد .
ThreadPriority.LowestPriority : پایین ترین اولویت را به Thread میدهد .
ThreadPriority.Normal : تولویت نرمال را به Thread میدهد .

پیدا کردن وضعیت Thread :
وضعیت یک Thread را میتوانیم به وسیله خاصیت ThreadState به دست بیاوریم که به وسیله یکی از ثابتهای شمارشی System.Threading.ThreadState معین میگردد .
System.Threading.ThreadState.Initialized : بیان میکند که Thread مقداردهی اولیه شده اما هنوز شروع نگردیده است .>System.Threading.ThreadState.Ready : Thread آماده است .
System.Threading.ThreadState.Running : بیان میکند که Thread در حال اجرا است .
System.Threading.ThreadState.Standbye : بیان میکند که Thread در حالت آماده به کاراست .
System.Threading.ThreadState.Initialized :بیان میکند که Thread به پایان رسیده است .
System.Threading.ThreadState.Transition : بیان میکند که Thread بین دو وضعیت بوده و در حالت انتقال از وضعیتی به وضعیت دیگر است .
System.Threading.ThreadState.Unknown : بیا میکند که وضعیت Thread معلوم نیست .
System.Threading.ThreadState.Wait : بیان میکند که Thread در حالت انتظار است .

مثال

کد:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Thread1 As New Threading.Thread(AddressOf test)
        Thread1.Start()

        Dim Thread2 As New Threading.Thread(AddressOf test)
        Thread2.Start()
    End Sub
    Public Sub test()
        MsgBox("test")
    End Sub
هر دو messageBox رو با هم می بینیم. اما اگر کد زیر رو بنویسیم:

کد:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        test()
        test()

    End Sub
    Public Sub test()
        MsgBox("test")
    End Sub
ابتدا messageBox اول و پس از ok کردن دومی را خواهیم دید
 
 
 
 |+| نوشته شده در  یکشنبه یازدهم فروردین 1387ساعت 12:33 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

GTCMPS94 (سيستم هاي كنترل توزيع شده DCS)

سیستمی الکترونیکی بوده که صرفاً به منظور کنترل نظارت و حفاظت توربوژنراتور V94.2 به کار گرفته شده است . سیستم GTCMPS94 یک سیستم کنترل توزیع شده (DCS) میکروپروسسوری میباشد که در این تحقیق سعی شده است قسمتهای مختلف آن بررسی گردد .
 

مقدمه

يكي از مقوله هايي كه امروزه در زمينه اتوماسيون مورد توجه قرار گرفته است ، مسئله ايجاد شبكه كامپيوتري براي كنترل فرآيندهاي صنعتي است ، يكي از اين سيستمها، سيستم كنترل توزيع شدهDCS ميباشد .

پيشرفت سريع كامپيوتر و كاربرد آنها در سيستم هاي كنترل ، در چند سال اخير افزايش حيرت انگيزي كرده است ، اين پيشرفت سريع در كشور ما نيز با سرعت كمتري نفوذ كرده و بسياري از كارخانجات كشور مجهز به سيستم هاي كنترل كامپيوتري گسترده و نيمه گسترده شده اند.صنعت توليد برق بي شك يكي از پيشگامان اين عرصه مي باشد .

تحقيق زير مطالب جمع آوري شده و انتخاب شده اي از مدرك Elsag Bailey process automation و جزوات I&C Maintenance و مدارك بهره برداري ابزار دقيق توربين گاز V94 و مدارك گسسته شركت Ansaldo و تجربيات عملي ميباشد .

فصل 1 -  GTCMPS94

سيستمي الكترونيكي بوده كه صرفاً به منظور كنترل نظارت و حفاظت توربوژنراتور V94.2 به كار گرفته شده است . سيستم GTCMPS94 يك سيستم كنترل توزيع شده (DCS) ميكروپروسسوري ميباشد كه در اين تحقيق سعي شده است قسمتهاي مختلف آن بررسي گردد .

تمامي تجهيزات سخت افزاري اين سيستم در تابلوهاي اتاق كنترل واحد نصب گرديده اند .

GTCMPS94 در پردازش ، مدارهاي واسط ، ارتباطات و منبع تغذيه داراي افزونگي ( Redundant ) مي باشد .

GTCMPS94 به منظور كنترل تمام اتوماتيك مجموعه توربين گاز و ژنراتور و انجام وظايف اصلي زير طراحي شده است :

- راه اندازي ، بهره برداري ، و Shut-down خودكار

- كنترل راه انداز (Drive Control)

- كنترل سوخت

- اتصال واحد به شبكه (Synchronization )

- نظارت (Monitoring)

- حفاظت توربوژنراتور

ساختار شبكه استفاده شده براي اين سيستم بر اساس استاندارد TCP/IP مي باشد

 

پيكر بندي استاندارد سيستم

ساختار GTCMPS94 شامل :

• يك مجموع از تابلوها ، شامل بردهاي ميكروپروسسوري ، افزونگي منبع تغذيه ، بردهاي I/O و اتصالات

• ايستگاه واسط اپراتوري (Operator Interface Unit ياOIU ) نوع Stand-alone براي اتاق كنترل واحد شامل مونيتور ، صفحه كليد ، موس و چاپگر آلارم ( براي هر واحد )

• ايستگاه واسط اپراتوري نوع روميزي (Desk Top) براي اتاق كنترل مركزي شامل مونيتور ، صفحه كليد موس وچاپگر آلارم ( براي هر واحد )

• يك كنسول مهندس شيفت براي هر نيروگاه بايد در نظر گرفته شود . كنسول سرمهندس شيفت امكان هر گونه دسترسي به سيستم را در اختيار بهره بردار قرار مي دهد . اين كنسول بايد توانايي كنترل و نظارت بر هر يك از توربين هاي گازي مدول را داشته باشد . Refresh Time اين كامپيوتر براي صفحات تصويري حداكثر 2 ثانيه است .

• يك ايستگاه كاري مهندسي به عنوان يك دستگاه ويژه تعميرات كه مي تواند براي مجموعه نيروگاه در نظر گرفته شود اين كامپيوتر در يك اتاق مخصوص ( جنب اتاق فرمان اصلي نيروگاه ) قرار مي گيرد و مي تواند دسترسي به همه مدول هاي متصل به سيستم را با امكانات ويژه خود فراهم سازد . اين امكانات شامل سفارشي كردن سيستم ، اصلاح اطلاعات پيكر بندي ، ايجاد صفحات جدد تصويري يا اصلاح صفحات قديمي و انجام هر گونه برنامه هاي عيب يابي و تشخيص خطا مي باشد.

• SER براي 128 سيگنال با دقت زماني 1 msec .

• تابلوي توزيع انرژي

• تابلوي ابزار دقيق نظارتي توربين

GTCMPS94 از طريق شاهراه اطلاعاتي اجازه اتصال و توسعه سيستم به ايستگاه واسط اپراتور راه دور و يا سيستم هاي خارجي مرتبط با ساير واحدها را مي دهد .

ساختار سيستم بايستي بر مبناي استفاده از ريز پردازنده هاي 32 بيتي با سطح افزونگي تشريح شده در زير باشد . همچنين سيستم بايد توانايي مديريت 1800 ورودي / خروجي با 20% ظرفيت يدكي ، كه 10% آن نصب و تست شده است داشته باشد .

 

براي اطمينان از صحت عمل سيستم كنترل ، GTCMPS94 داراي افزونگي در سطوح زير مي باشد .

• پردازش ها

• مدارهاي واسط

• ارتباطات

• منبع تغذيه

 

كليه وظايف كنترل ، حفاظت و نظارت در كارت هاي پردازش كننده (MFP) با افزونگي دو تايي اجرا مي گردند پيكر بندي سخت افزاري به صورت Hot-Stanby مي باشد .

در اين جفت پردازشگر ، يكي از پردازشگرها به صورت فعال و ديگري به صورت پشتيبان عمل مي كند . درحالت عادي MFP اوليه كار عادي خود را انجام داده و MFP ديگر به صورت Hot-Stanby مي باشد به اين معنا كه چنانچه MPF اوليه دچار خرابي شود ،MFP دوم بدون هيچگونه اختلاف در روند كنترل اتوماتيك وارد عمل شده و كنترل سيستم را به عهده مي گيرد ، در چنين مواردي يك آلارم در سيستم فعال مي گردد . در اين حال MFP خراب را در حين كار واحد ، بدون هيچ مشكلي مي توان تعويض نمود .

منبع : http://www.autoir.com/page.php?id=97

 

 |+| نوشته شده در  یکشنبه یازدهم فروردین 1387ساعت 12:28 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

چرا دو پردازنده بهتر از یك پردازنده است...

برای بالا بردن قدرت كامپیوتر، مردم به لطایفالحیل زیادی متوسل میشوند، كه یكی از متداولترین آنها، دو قلو كردن، یا سه قلو كردن، یا حتا چهار قلو كردن پردازندههاست.

 
برای بالا بردن قدرت كامپیوتر، مردم به لطایفالحیل زیادی متوسل میشوند، كه یكی از متداولترین آنها، دو قلو كردن، یا سه قلو كردن، یا حتا چهار قلو كردن پردازندههاست. پردازنده با حداكثر سرعت خود كار میكند تا عملیاتی را انجام دهد كه از نان شب هم برای كامپیوترتان واجبتر است. پردازنده به پردازش دستورالعملهایی میپردازد كه برای اعمالی مانند باز كردن برنامهها، كپی نمودن فایلها، و تمام آن زرق و برقهایی كه روی نمایشگرتان بالا و پایین میروند، به كار میروند.
پردازندهها به دو منبع منحصر به فرد از حافظه متوسل می شوند تا در حین پردازشهای دیگر خود، به دادههای مورد نظرشان نیز دست پیدا كنند. اوّلین منبع حافظه، ثبّات پردازنده است. ثبّات از نظر پردازنده همان نقشی را دارد كه حافظه برای كل كامپیوتر. اطلاعاتی كه پردازنده در حال كار با آنهاست، در ثبّات نگهداری میشود.
منبع دوّم حافظه به «كاشه» مشهور است؛ كه میتوان آن را نوعی زاغهی مهمات در نظر گرفت. در حالت كلی دو كاشه وجود دارد كه پردازندهها میتوانند به سراغشان بروند، و در حالی كه هیچ كدام از آنها در بازیابی دادهها به سرعت ثبّات نیستند، هر دوی آنها از سرعت نسبتاً بیشتری نسبت به حافظهی متعارف كامپیوتر یا سختدیسك برخوردارند (و حتا منابع دیگر حافظه كه پردازنده میتواند به آنها دست پیدا كند)...
حال كه پردازندهی شما مسؤولیت این همه كار را در كامپیوترتان برعهده دارد، آیا عاقلانهتر نیست كه بیش از یكی از آنها را در كامپیوتر خود نصب كنید؟ خوب، هم بله و هم خیر. داشتن بیش از یك پردازنده- یا چند پردازنده- میتواند سرعتتان را افزایشدهد. این امر به نوبهی خود، هزینههای شما را بالاتر میبرد.
بنابراین كسی كه میخواهد به فكر یك كامپیوتر چند پردازندهای بیفتد، باید قبل از آن تصمیم گرفته باشد كه میخواهد از كامپیوترش چه استفادهای ببرد.
اكثر مردم كه از كامپیوترشان به عنوان یك كامپیوتر شخصی- با تاكید با شخصیبودن آن- استفاده میكنند، و امورات روزمرهی خود را با آن میگذرانند. هیچ نیازی به پردازندههای چندقلو ندارند.
پردازندههای چندتایی بیشتر در محیطهایی به كار میروند كه پای بانكهای دادهای بسیار حجیم و سنگین در وسط باشد، یا جایی كه با گرافیكهای پیچیده سروكار دارند، یا در مراكزی كه به ترافیك شدید اینترنت احتیاج داشته باشند. منتها، هیچ ضرری ندارد اگر با چند مفهوم اولیهی پردازندههای چندتایی آشنا شوید تا در مورد تعدد پردازندههای خود و گزینههایی كه پیش روی دارید، بهتر تصمیم بگیرید.
برای ورو به این بحث، اوّل از همه باید بدانید كه بیش از یك روش برای استفاده از پردازندههای چند قلو وجود دارد. روش «پردازشهای چندتایی متقارن
۱» منوط به دو یا چند پردازنده است كه در سیستم نصب میشوند و از یك حافظه و یك سختدیسك واحد مشتركاً استفاده میكنند. در روش متقارن، عملیات پردازش واحد به طور مساوی بین پردازندههای مختلف تقسیم میگردد. روش دیگر، روش «پردازشهای چندتایی غیرمتقارن۲» است كه در آن نیز منابع حافظه و سیستم در بین بیش از یك پردازنده توزیع میگردد.
تنها تفاوتی كه در اینجا وجود دارد آن است كه پردازندههای مختلف به عملیات مختلفی مشغول میشوند. در روش غیر متقارن، یك پردازنده متصدی برنامههای كاربردی میشود، در حالی كه پردازندهی دیگر، عملیات مربوط به خود سیستم عامل را به اجرا در میآورد.
«پردازش موازی انبوه
۳» با منابع مشترك هیچ مناسبتی ندارد. در روش پردازش انبوه، هر پردازندهای از حافظهی مختص به خود و خط حامل خاص خود استفاده میكند. این به آن معنی است كه هیچ یك از پردازندهها مجبور نیستند برای دسترسی به خط حامل سیستم یا حافظه منتظر بمانند، در نتیجه تمام پردازندهها با حداكثر سرعت و توان خود كار میكنند.
روی آوردن به پردازندههای چندتایی
روی آوردن به یك سیستم چند پردازندهای، به چیزی بیش از خرید یك پردازندهی دوم بستگی دارد. درواقع شما باید برد مادر مبتنی بر پردازش متقارن خود را با تراشهی خاصی كه بتواند عملكردهای متعدد تمام پردازندههای موجود را در آن واحد اداره نماید، تجهیز نمایید. در عینحال، پردازندههایی كه میخواهید آنها را به كار ببرید، نیز باید قابلیت پردازش متقارن را داشته باشند.
چند مورد از توابع پیچیدهای كه از الزامات پردازندههای چندتایی است، ارزش بررسی كردن را دارند. برای آنكه دو پردازندهی موجود در سیستم از یك دیگر جلوتر نیفتند و دادههایی را تولید نكنند كه عمرشان به سر رسیده است، چندپردازشی به چیزی متكی میشود موسوم به «همبستگی كاشهها
۴».
در اینجا یك پردازنده وارد حافظهی كاشهكردهی خود میشود تا تكهای از اطلاعات مورد نیازش را بیرون بكشد، و پردازندهی دیگر -بدون اطلاع آن یكی پردازنده- بررسی میكند كه آیا آن فقرهی خاص در آخرین لحظه به روز در آمده است یا خیر، كه اگر آن فقره به روز درآمده باشد، آخرین و جدیدترین دادهها را تامینسازد. این همبستگی كاشهها مانع از آن میشود كه دادهها به هم ریخته گردند؛ آن هم با كاركردن كم و بیش جداگانهی یك یا چند پردازنده روی یك عملیات واحد.
ویژگی دیگری كه موجب بهتر كاركردن چند پردازشی میشود، به «نوبتكاری خط حامل
۵» مربوط میشود. به منظور دست یافتن به حافظهای كه در عمق بیشتری از كاشهی پردازنده قرار دارد- مثلاً حافظهی متعارف یا سختدیسك كامپیوتر- پردازنده باید از روی چیزی حركت كند كه به آن خط حامل سیستم میگویند. هنگامی كه بیش از یك پردازنده در حال انجام وظیفه باشد، ممكن است در مورد اینكه چه پردازندهای باید اوّل سوار این خط شود، دعوایی به راه بیفتد و برخوردی رخ دهد.
نوبت كاری خط حامل به هر یك از پینهای پردازندهها، یك ولتاژ متفاوت اختصاص میدهد تا از روی آن معلوم شود كه چه پردازندهای فعال و چه پردازندهای بیكار است.
پردازندهی فعال حق تقدم سوار شدن روی خط حامل را پیدا میكند. همین تغییر وضعیت فعال و غیر فعال كه تصادفاً بین هر دو پردازنده رخ میدهد، باعث میشود كه هیچكس دست و پایش را گم نكند و در این شلوغی سرگیجه نگیرد!
در یك جمله، قابلیت پردازندههای چندتایی را همه دوست دارند، امّا به درد كامپیوتركاران خانگی نمیخورد. دوبرابر كردنِ تعداد پردازندهها الزاماً به معنی دوبرابر شدنِ سرعت كامپیوترتان نیست، مگر آنكه همیشه از نرمافزارهای خاصی استفاده كنید كه حداكثر استفاده را از پردازندههای دو قلو ببرند.
در مورد بیشتر كاربران خانگی، این مورد وجود ندارد. برای آنها، و با توجه به هزینهی تمام ملزومات مورد نیاز بهتر است به كلاس ماشیننویسی بروید تا سرعت ماشین كردنتان افزایش یابد و به جای آنكه پول بیزبان را خرج این قبیل زرق و برقهای اضافی بكنید، مهارت و تسلطتان را در استفاده از كامپیوترتان بیشتر نمایید.
 

Symmetric MultiProcessing (SMP)
Asymmetric MultiProcessing (AMP)
Massively Parallel Processing (MPP)
Cache Coherency
Bus arbitraion

 

منبع:

ماهنامه کامپیوتر
 
 
 |+| نوشته شده در  چهارشنبه هفتم فروردین 1387ساعت 8:11 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

Code Mobility and Session State

Code mobility as provided for by Request Based Distributed Computing RBDC (see backgrounder) is key for delivering On-Demand computing, Distributed Computing (e.g. SETI@home) and Rich Internet Applications.

RBDC enables the mobility of code that gets its input from http sources (url, request body, cookie, and passwordless GETs). This post looks into whether session state can be made mobile as well.

How can code that relies on session state be made mobile?

In a typical scenario, http servers associate session state with client request streams through the use of a server-unique session-id that is preserved between accesses via a cookie. An example of this is PHP’s handling of sessions. Under this scheme the server held session state prevents the code being mobile. The code is not mobile because the session state is only available in the server that generated the client’s requested resource.

Using RBDC, code that relies on session state can be made securely mobile. Here is one way.

[[Since writing this post, I have realised that the mechanism described here is the same mechanism that makes Google Reader Public Pages both globally available and private.]]

Firstly, the server stores the session state using a globally-unique-id (GUID) insead of server-unique-id as the key. The key is preserved between requests in the client cookie as is now done. Then the server makes the session state publically available at a well known URL. For example, an xml serialised version of the state could be GET and POSTable at a URL like https://www.myserver.com/sessionstate. The GUID used is sufficiently long to prevent guessing and therefore session state will be securely and globally available.

With session state stored in such a secure and globally available fashion, code that requires session state may also be mobile.

منبع : http://www.davidpratten.com

 

 |+| نوشته شده در  شنبه سوم فروردین 1387ساعت 11:53 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

اعمال هم زمان در پایتون ( بخش دوم )

مفسر پایتون به شکل بسیار حرفه ای و پیچیده ای در زبان برنامه نویسی C پیاده سازی شده به طوری که خیلی از برنامه نویس های C هم نمی تونن به راحتی از کدهاش سر در بیارن. و خب مسلما با این شرایط میشه گفت جز تیم اصلی برنامه نویسی پایتون — که در صدر اون ها ون روسوم قرار داره – کسی نیست که بخواد به تمام جوانب طراحی این مفسر آشنا باشه. و تا حدودی هم نیازی به این آشنایی حس نمیشه چون در پایتون اصولا لازم نیست چیزی در مفسر تغییر کنه و بیشتر لازم داریم که چیزی به اون اضافه کنیم که این کار هم چندان سخت نیست.اما یه مبحث در ساختار طراحی پایتون بسیار شناخته شده است. مبحثی که همه می دونن چه مزایایی داره و چه خدمتی به مفسر پایتون کرده و از جهتی هم همه ازش متنفرن و همگی خواستار کنار گذاشتن این ساختار از مفسر پایتون شدن. این ساختار چیزی نیست جز ساختار معروف GIL یا Global Interpreter Lock که میشه تو فارسی اونو به شکل “قفل سراسری مفسر” ترجمه کرد.اما این GIL چیه و دقیقا چی کار میکنه. مسلما در طراحی مفسر پایتون برای بالا بردن سرعت و امکان انجام کارهای هم زمان از تکنیک چند نخی استفاده شده. در ضمن شما می تونید تکنیک چند نخی رو در برنامه هایی که توسط مفسر پایتون اجرا می شن هم به کار ببرید. اما استفاده از چند نخی همونطور که مزایایی داره می تونه خطراتی هم داشته باشه که بزرگترین اونها دخالت نخ های مختلف تو کار همدیگست.این وضعیت زمانی اتفاق می افته که یک نخ به طور ناخواسته به حریم نخ های دیگه وارد بشه که این وضعیت تو زبان هایی مثل C یا C++ و بقیه زبان های برنامه نویسی خیلی اتفاق می افته. این کار در سطح مفسر میتونه حرکت اجرایی مفسر رو کاملا مختل کنه و در سطح برنامه می تونه باعث به وجود اومدن خطاهای زمان اجرا بشه.از اون جایی که پایتون روی ساده تر کردن کارها تاکید داره, طراحان مفسر تصمیم گرفتن از ساختار GIL استفاده کنن. به این صورت که شما می توانید نخ های زیادی ایجاد کنید ولی در هر زمان فقط اجازه ی استفاده از یکی از اون ها رو دارید. وقتی برنامه از تکنیک چند نخی استفاده میکنه, GIL بعد از اینکه مقداری از کدهای هر نخ رو اجرا کرد, کار این نخ رو متوقف میکنه و وضعیت نخ رو در حافظه ذخیره میکنه, و بعد از این کار شروع به اجرای کدهای نخ بعدی میکنه و این کارو تا زمانی انجام میده که تمام کدهای موجود در نخ ها اجرا بشن و از اونجایی که در هر لحظه فقط یک نخ فعال میشه امکان تداخل نخ ها تو کار همدیگه خیلی کم تر میشه. GIL در سرتاسر مفسر پایتون پیاده سازی شده و علاوه بر اینکه روی کدهای شما تاثیر می ذاره, حرکات سطح پایین مفسر رو هم در بر میگیره و از همین جهت هستش که توسعه ی مفسر با استفاده از C اینقدر ساده هستش وگرنه شما مجبور بودید با مشکلات مربوط به چند نخی به طور مستقیم دست و پنجه نرم کنید. خب پس تا اینجای کار GIL میتونه :

استفاده از تکنیک چند نخی رو ساده تر کنه.
استفاده از تکنیک چند نخی رو امن تر کنه.
تغییر در مفسر رو راحت تر کنه.
توسعه ی مفسر رو راحت تر ساده تر کنه.

اما از طرفی هم :

نمی ذاره چند نخ به طور هم زمان اجرا بشن و فقط می تونه همزمانی رو شبیه سازی کنه.
نمی تونه از پردازنده ها و یا هسته های اضافی CPU استفاده کنه و همه ی کارها رو روی یه هسته انجام میده.

یه نکته ای که قابل ذکر هستش اینه که مفسر به کدهای خارجی کاری نداره. مثلا اگه تولکیت Qt از چند نخی استفاده می کنه, استفاده از اون در پایتون باعث تحت پوشش قرار گرفتن کار Qt توسط GIL نمیشه و اون خیلی راحت می تونه به طور واقعی از چند نخی استفاده کنه. البته موقع نوشتن رابط پایتون برای همچین برنامه هایی باید به یه سری نکاتی هم توجه بشه تا باعث به وجود اومدن مشکل نشه.

کاربران پایتون خواستار برداشته شدن این ساختار از مفسر هستن تا بتونن به طور واقعی از چند نخی استفاده کنن و همچنین از منابع اضافی مثل CPU های چند هسته ای هم بهره ببرن. ولی به دلایلی این کار به همین راحتی ها قابل انجام نیست:

GIL در سرتاسر مفسر استفاده شده و حذف اون اصلا ساده نیست.
حذف GIL می تونه باعث بشه مفسر یه بار دیگه از نو نوشته بشه.
از این به بعد دیگه باید مثل C++ خودتون مسئول مدیریت نخ هاتون باشید.
تمام توسعه های پایتون باید از اول نوشته بشن چون همشون بر پایه GIL هستن.
امکان داره مقدار زیادی سرعت رو از دست بدید!

این مورد آخر یک بار زمانی که پایتون در نسخه ی 1.5 قرار داشت آزمایش شد. یعنی GIL از مفسر حذف شد و باعث شد سرعت اجرای برنامه ای با یک نخ در پایتون به نصف سرعت قبلی برسه و چون خیلی از برنامه های پایتون از چند نخی استفاده نمی کنن این کار زیاد هم به صرفه نیست. اما امیدوارم این صحبت ها باعث نشه که فکر کنید در پایتون نمیشه از عملیات همزمانی واقعی استفاده کرد و یا فقط باید به یه CPU بسنده کرد. زبان پایتون نیازی به GIL نداره, این فقط پیاده سازی CPython که از این روش استفاده میکنه و شما توی Jython همچین چیزی رو ندارید. تو مقاله های بعدی بیشتر در مورد این زمینه ها صحبت میکنیم و راه حل های این مشکل رو مورد بررسی قرار میدیم.

منبع : http://amirreza.wordpress.com/category/%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C/

 

 |+| نوشته شده در  شنبه سوم فروردین 1387ساعت 11:48 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

اعمال هم زمان در پایتون (بخش اول)

اجرای هم زمان وظایف
کارایی یک نرم افزار فقط زمانی به بالاترین حد خود می رسه که بتونه به درستی از منابع سخت افزاری سیستم استفاده کنه. وقتی در حیطه ی نرم افزار صحبت از منابع سخت افزاری می شه اصولا منظور ما پردازنده و حافظه هست. برنامه ها به هنگام اجرا در پروسه ها یا فرآیندها طبقه بندی می شن. به این صورت که سیستم عامل مقداری از حافظه رو به هر فرآیند تخصیص میده و پردازنده اقدام به پردازش اون فرآیند در حافظه می کنه. به حالت عادی هر پردازنده در هر زمان فقط می تونه یه فرآیند را مورد پردازش قرار بده اما سیستم عامل با زمان بندی مناسب باعث می شه قدرت پردازنده بین تمام فرآیندها تقسیم بشه و چندین فرآیند بتونن به طور هم زمان مورد پردازش قرار بگیرن. به یک همچین عملی ” multi-tasking” یا “چند وظیفه ای” گفته میشه.
multi-tasking این امکان رو میده که چندین برنامه به صورت همزمان اجرا بشن. برای مثال می تونید همزمان با اجرای مرورگر firefox یک فیلم رو هم تو mplayer مشاهده کنید. در سیستم عاملی مثل DOS این امکانات فراهم نبود و فقط یه برنامه در هر زمان می تونست اجرا بشه. در ضمن اگه از چند پردازنده استفاده کنیم و یا پردازنده ی دستگاهمون چند هسته ای باشه کارایی مکانیزم multi-tasking به بالاترین حد خودش می رسه.
تا اینجای کار فهمیدیم که سیستم عامل می تونه با استفاده از multi-tasking چند تا عمل رو در یک زمان انجام بده و با حداکثر استفاده از قدرت پردازنده باعث بشه کارایی برنامه ها بالاتر بره. اما نکته ی قابل توجه اینه که ما می تونیم multi-tasking را در سطح برنامه ی خودمون هم اعمال کنیم. از اونجایی که هر برنامه کامپیوتری از زیربرنامه های مختلف تشکیل میشه ما می تونیم در صورت نیاز اجرای چند زیر برنامه رو به صورت هم زمان انجام بدیم. اما ممکنه این سوال پیش بیاد که این کار چه نفعی می تونه داشته باشده. در جواب این سوال میشه به دو منفعت اساسی این روش استفاده کرد:
1. برنامه ی ما می تونه چند عمل رو در یک زمان انجام بده. مثلا در نظر بگیرید که قراره برنامه ای بنویسیم که می خواد دو جفت عدد رو با هم جمع کنه و در آخر حاصل جمع هر دو جفت رو به خروجی بفرسته. پیاده سازی معمولی این برنامه می تونه به صورت زیر باشه:
جمع جفت اول رو انجام بده.
جمع جفت دوم رو انجام بده.
حاصل جمع جفت اول رو به خروجی بفرست.
حاصل جمع جفت دوم رو به خروجی بفرست.
در اینجا اعمالی که برنامه انجام می ده به ترتیب صورت میگیره. اما مساله اینه که چرا وقتی پردازنده ی ما این قدرت رو داره که بخواد تمام اعمال رو با هم انجام بده, ما از این مزیت استفاده نکنیم؟ پس برنامه رو با استفاده از multi-tasking به صورت زیر بازنویسی می کنیم:
جمع جفت اول و دوم را انجام بده.
حاصل جمع این دو جفت را به خورجی بفرست.
2. کارایی برنامه بالاتر میره. در مثالی که زدم مشاهده کردید که با استفاده ی بهینه تر از قدرت پردازنده, مراحل کاری برنامه ی ما کاهش پیدا کرد. این امر علاوه بر اینکه اجرای برنامه ی ما رو سریعتر میکنه باعث میشه برنامه بهتر از منابع سخت افزاری ای که در اختیارش گذاشته میشه استفاده کنه و بی خود اون ها رو هدر نده.
حالا که با مزیت های multi-tasking آشنا شدیم باید ببینیم که جه جوری می تونیم از این شیوه تو برنامه ها مون استفاده کنیم. برای پیاده سازی multi-tasking در برنامه ها دو راه حل اصلی وجود داره:
1. multi-processing (چند پروسه ای)
multi-processing برای پیاده سازی multi-tasking از پروسه ها یا همون فرآیندها استفاده میکنه. مثلا وقتی می خواهید دو زیر برنامه در برنامه ی شما به طور هم زمان اجرا بشه, multi-processing دو پروسه ی جداگانه ایجاد میکنه و از سیستم عامل مقداری حافظه برای اون ها قرض میگیره. بعدش هر کدوم از این زیربرنامه ها رو داخل این پروسه ها پردازش میکنه. بعد از اینکه پردازش تموم شد مقدار حافظه ای که قرض گرفته بود رو آزاد میکنه و نتیجه ی پردازش رو به برنامه بر میگردونه. دقت کنید که هر پروسه یا فرآیند مخصوص نگه داری یک برنامه مستقل هستش, یعنی وقتی برنامه ی شما این دو پروسه ی جدید رو ایجاد میکنه در واقع داره دو برنامه ی جدید رو به سیستم عامل معرفی میکنه. حتما شما هم فکر می کنید که این شیوه با اینکه عملیات هم زمان سازی رو انجام میده ولی اونطور که باید و شاید از لحاظ سخت افزاری به صرفه نیست. که البته این موضوع هم تا حدودی به معماری سیستم عاملتون بر می گرده.
2. multi-threading (چند نخی)
multi-threading شیوه ی دیگری برای هم زمان سازی اجرای زیربرنامه هاست که سریعتر و سبک تر از multi-processing عمل میکنه. تو این شیوه به جای استفاده از پروسه ها از “نخ ها” (threads) استفاده میشه. نخ ها جریان های شناور داخل پروسه ها هستند که عملیات برنامه رو تقسیم بندی میکنند. به حات عادی هر پروسه فقط یک نخ ایجاد میکنه پس در هر زمان فقط یک عملیات داخل هر پروسه پردازش می شه. multi-threading می تونه چندین نخ را به صورت هم زمان ایجاد کنه تا با این کارهر پروسه بتونه میزان پردازش بیشتری را از پردازنده ی دستگاه درخواست کنه. در این روش به جای اینکه چند پروسه ی جدید ( یا چند برنامه ی جدید ) در حافظه ایجاد بشه, چند نخ جدید در هر پروسه ایجاد میشه و نخ ها از حافظه ای که مختص به همون پروسه هستش استفاده میکنن. این روش سریعتر و بهینه تر از روش multi-processing هست. در ضمن در multi-threading چون نخ ها از حافظه ی جداگانه استفاده نمی کنند, می توانند به راحتی با هم ارتباط داشته باشند و داده هایشان را با هم به اشتراک بگذارن؛ این کاریه که در شیوه ی multi-processing به راحتی قابل انجام نیست چون هر پروسه از حافظه های جداگانه استفاده میکند.
موارد لازم برای شروع کار
نکته ای که اینجا لازمه بگم اینه که اگه بخواین از multi-tasking تو برنامه هاتون استفاده کنید اول باید سیستم عاملی داشته باشید که از multi-tasking پشتیبانی کنه ( که تقریبا همه سیستم عامل ها این کار رو می کنن) و در ضمن زبان برنامه نویسی ای که برای نوشتن برنامه استفاده میکنید باید قابلیت پیاده سازی شیوه های multi-processing و multi-threading رو داشته باشه. (توجه کنید که ارجحیت با multi-threading هستش)
زبان هایی مثل Java, C#, Python و یا Ruby به صورت درونی از این شیوه ها پشتیبانی میکنند. زبان هایی مثل ++C هم هستن که این قابلیت ها رو به صورت درونی ندارن ولی می تونن از این شیوه ها استفاده کنن. البته زبان هایی هم مثل PHP وجود دارن که اصلا همچین چیزهایی رو پیاده سازی نکردن (اگه اشتباه میکنم گوشزد کنین تا اصلاح بشه)
شاید این سوال واستون پیش اومده باشه که چه طور ممکنه C و++C به صورت درونی multi-tasking رو پیاده سازی نکرده باشن ولی بیشترین استفاده از multi-tasking در همین زبان باشه؟ جواب خیلی ساده اس. از اونجایی که این دو زبان جزو زبان های سطح میانی به حساب میان و اصولا برای کارهای سیستمی استفاده میشن, در استاندارد اون ها پیش بینی شده که ممکنه برنامه های C و ++C روی سیستم عاملی استفاده بشن که از multi-tasking پشتیبانی نکنه! و یا شاید اصلا نیاز به multi-tasking وجود نداشته باشه و یا….. به همین خاطر این دو زبان طبق استاندارد هاشون به صورت درونی از multi-tasking پشتیبانی نمی کنن و پیاده سازی اون رو وظیفه ی سازنده های کامپایلر و یا کتابخونه های اضافی می دونن. البته لازم به گفتنه که استاندارد آینده ی ++C که به C++0x مشهور هستش, سازنده های کامپایلر رو مجبور میکنه که عملیات هم زمان سازی رو به صورت دورنی در++C قرار بدن که با این کار ++C رو یک قدم به ساخت برنامه های کاربردی نزدیک تر می کنن و یک قدم هم اونو از مسایل سیستمی دورتر میکنن و با این حساب در آینده باز هم این C هستش که به عنوان یه زبان سیستمی حرف اول رو می زنه.
از معدود زبان های سطح بالا که کاملا multi-tasking ( یا شاید دیگه بهتر باشه بگیم multi-threading ) رو پیاده سازی کردن Java هستش. اکثر زبان ها اون رو به طور کامل و همه جانبه پیاده سازی نکردن که از جمله ی اون ها میشه به Python , Ruby و یا حتی #C اشاره کرد.
حالا که با اصول و مفاهیم اولیه کار آشنا شدیم می تونیم در بخش دوم مقاله به مبحث اصلی خودمون یعنی “اعمال همزمان در پایتون) بپردازیم.
 
 
 |+| نوشته شده در  شنبه سوم فروردین 1387ساعت 11:45 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

Architecting Server/Client Convergence

In this post I argue that the current convergence of Desktop and / Web Apps (RIAs) suggests a convergence of Server and Clients and that this opens up some interesting possibilities.

I have been following an interesting series of posts by Arnon Rotem-Gal-Oz on the web/desktop convergence trend (all four posts are worth reading!). As well, in January and April, Arnon observes software converging towards:

  • the ease of deployment of web applications,
  • the richness and responsiveness of desktop apps,
  • using a unified programming model for the whole app.

Technologies competing for the privilege of delivering some or all of this trifecta include (but are not limited to) AJAX, Adobe Flex, Flash, Adobe Air, Microsoft Silverlight, JavaFX, Google Gears, Mozilla Prism, Aptana’s Jaxer and JNext.

These technologies are being developed in the context of increasing awareness of two trends 1) the possibilities of ‘on-tap’ cloud computing and simultaneously 2) the promise of 100’s of cores in our client computers.

Here are some observations about the current web-app situation:

  • Increasingly, the Virtual Machine environments on the server are being introduced down the tiers and ported to clients. (Silverlight’s CLR, and Java VM come to mind.)
  • The use of Javascript in browsers has taught us about the secure use of mobile code and a similar mechanism could be inductively applied back up the tiers so that servers also are extensible like browsers. (Unlike the movement of server VMs into clients, I am not aware of production or prototype implementations of this.) Aptana’s Jaxer is a great example of this. (Thanks to Peter Svensson for pointing this out.) See Request Based Distributed Computing for a candidate architecture.

What we are seeing is not just a Web/ Desktop Convergence but also the possibility of Server/Client Convergence.

This convergence has the potential to address another problem in the current state of affairs with web apps:

  • Forcing the developer to choose in advance about the location of code execution is like forcing the developer to place a long running bet on the relative performance of the cloud, network and heterogeneous clients.

Actually, this is one of the drivers underlying Microsoft Volta - a technology that is designed to reduce the cost of reassigning portions of an application between server and client. However as Arnon has pointed out it does not provide an abstraction that reinforces the “coarse-grained interface” that works well in the context of the fallacies of distributed computing. Unlike Volta, tier-agnostic requests relies on the same coarse grained interface as AJAX.

Convergence of server and client technologies
However, the convergence of server and client technologies opens up the possibility for Request Based Distributed Computing and tier-agnostic requests to provide a simple mechanism for delaying architectural decisions to run-time as well as supporting:

  • the ease of deployment of web applications,
  • the richness and responsiveness of desktop apps,
  • using a unified programming model for the whole app.

منبع : http://www.davidpratten.com

 

 |+| نوشته شده در  شنبه سوم فروردین 1387ساعت 11:40 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

Adaptive control of Request Based Distributed Computing

The purpose of this post is to illustrate the possibility for autonomic computing inherent in Request Based Distributed Computing (RBDC).

This is how I summarised RBDC in a recent post:

Request Based Distributed Computing is a small extension of the http protocol and notion of server, proxy and client. Rich Internet Applications, SOA architected applications and SETI@home type distributed computing alike can utilise a common unified programming model. No longer will technology dictate the locus of code execution - instead issues like availability of computing power, intellectual property and security will dictate this at run time.

This discussion focuses on the way that RBDC creates two ways to satisfy many http requests. The two ways are illustrated in the following two diagrams. These diagrams are similar to those in a earlier discussion.

In the first scenario (DIAGRAM 1) we see a client requesting resource A and evaluating code locally to satisfy its own http request.

DIAGRAM 1
RBDC Diagram 1

In the second scenario (DIAGRAM 2) we see the same client. However in this case, when the client requests resource A, the client does not tell the server about it’s local computing capacity. In this case the relevant code is evaluated on the server.

DIAGRAM 2
RBDC Diagram 5

The two ways of satisfying the request have differing performances. The relative performance of the two alternatives will be determined by things like the server/client balance of: response time, network bandwidth, and network latency.

A monitor can observe the time to complete each http request and recommend to the client whether to request mobile code or to let the server evaluate the code that generates the resource. This is an adaptive process because during a 24 hour period server availability, network latency and available bandwidth could change radically. Once the monitor has decided on the fastest way to execute a piece of mobile code, it may attempt the evaluation of mobile code in the opposite way once every N requests - in this way keeping its adaptive capability current.

منبع : http://www.davidpratten.com

 

 |+| نوشته شده در  شنبه سوم فروردین 1387ساعت 11:32 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

Distributed Computing with the Browser

Recently, Subbu posted an interesting discussion of an xml analysis and presentation application - you can read it here: Distributed Computing with the Browser.

This design scenario is a good illustration of the limitations of our current situation with programming . Our current situation is that while the WWW allows a programmer to ignore the network path to an information resource, as programmers, we can’t ignore where computing will be done. The programmer’s choice of technology (framework, language etc etc) carries with it the implicit choice about the location of computation (server or client).

An assumption behind Subbu’s post is that we need to decide the location of processing during the design phase. The purpose of this post is explore how the application could be built using Request Based Distributed Computing RBDC (see backgrounder). With the application recast as a RBDC application, the location-of-processing decisions can be made at runtime based on the availability of computing power and storage, intellectual property, and security issues.

The XML analysis and presentation application using RBDC

(This description presumes that you have read the RBDC backgrounder.)

The key distributed process in this application is the initial analysis of the source XML text, and the saving of the key features into a central database. Lets call this “analyse-save”. With RBDC, the code that performs analyse-save may be written as mobile code that will run on either the server, a proxy or on the client. Analyse-save may be implemented as the code that responds to a http POST request that uploads the source file to the server. It analyses the uploaded file then POSTS the results of the analysis to a central database.

When a RBDC compliant server receives the analyse-save request it may perform the analysis itself on the server or otherwise return the analyse-save code to the client. If the client receives code as a response to its analyse-post request then it would execute the code locally. In either case, the results of the analysis are POSTed to the central database using http.

Clients that have local processing capabilities signal through a http header in the POST request that they are able to accept mobile code as a response to the request. Alternatively clients without processing ability can make the same request signalling that they need the server to do all possible processing.

In this way - the architecture of the solution is the same for Subbu’s cases 1 and 3 with the decision about location of processing being made at runtime, not as part of the design.

منبع : http://www.davidpratten.com

 

 |+| نوشته شده در  شنبه سوم فروردین 1387ساعت 11:29 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام
سیستم های ردیابی و کشف نفوذ توزیع شده - dIDS

سیستم های ردیابی و کشف نفوذ توزیع شده که با dIDS از آن یاد می کنیم،از چندین IDS در یک شبکه بزرگ تشکیل شده اند. تمامی این Intrusion Detection System ها، در ارتباط با یدیگر هستند و یا به وسیله یک سیستم (شاید یک سرور) مرکزی در حال پایش شبکه، تحلیل رویدادها و جمع آوری اطلاعات حمله های شناسایی شده، می باشند. این ترکیب برای جمع آوری اطلاعات امکان ایجاد یک دید وسیع برای تیم امنیتی/نگهدارنده شبکه در مورد وقایعی که در هر لحظه در حال جریان است را فراهم می کند.

یک distributed IDS به سازمان ها و اپراتورهای شبکه اجازه می دهد تا به صورت موثر و مستند منابع شبکه ای و سازمانی خود را تحت کنترل قرار دهند و در صورت نیاز به سرعت اطلاعات مورد نیاز را از سیستم بیرون بکشند. برای آشنایی بیشتر مقاله زیر را بخوانید:

An Introduction To Distributed Intrusion Detection Systems

Due to the greater view the agent allows the analyst to achieve, the dIDS offers the incident analyst many advantages over other single mode IDS systems. One of these advantages is the ability to detect attack patterns across an entire corporate network, with geographic locations separating segments by time zones or even continents. This could allow for the early detection of a well-planned and coordinated attack against the organization in question, which would allow the security people to ensure that targeted systems are secured and offending IPs are disallowed any access. Another proven advantage is to allow early detection of an Internet worm making its way through a corporate network. This information could then be used to identify and clean systems that have been infected by the worm, and prevent further spread of the worm into the network, therefore lowering any financial losses that would otherwise have been incurred.

تبادل اطلاعات بین IDS ها در سه گونه تقسیم بندی می شود. دسته اول محصولاتی که برای dIDS طراحی شده اند و با استفاده agentهای مختلف در نقاط مختلف شبکه اطلاعات را برای سرور کنترلی IDS ارسال می کنند. دسته دوم محصولاتی که شامل IDS هایی از یک دسته هستند و لاگ فایل های خود را در یک محل متمرکز ذخیره می کنند و مانند دسته اول ادامه کار می دهند. و بالاخره دسته سوم که شامل IDS ها و IPS های (به طور کلی آن ها را sensor خطاب می کنیم.) مختلف از مارک های متفاوتی هستند که به وسیله ابزار های مدیریت سیستم های امنیتی لاگ فایل ها را ذخیره و پردازش می کنند. استاندارد تبادل اطلاعات در سنسور ها، در قالب یک پیش نویس استاندارد IETF در حال شکل گیری است.

The Intrusion Detection Message Exchange Format (IDMEF) is intended to be a standard data format that automated intrusion detection systems can use to report alerts about events that they deem suspicious. The development of this standard format will enable interoperability among commercial, open source, and research systems, allowing users to mix-and-match the deployment of these systems according to their strong and weak points to obtain an optimal implementation.

به دو علت پروژه های کمی در مورد dIDS هم اکنون وجود دارد. اولین مورد عدم درک نیاز به چنین سیستمی در بخش تجاری و صنعتی و دلیل دوم نو بودن چنین ترکیبی است. همانطور که پیشتر گفتم، IDMEF هنوز به حالت استاندارد در نیامده است. البته جایگزینی این سیستم به وسیله سیستم های یکپارچه مدیریت امنیت گران قیمت نیز دلیل دیگری در کم بودن پروژه ها است. تعدادی از این پروژه ها را در freshmeat ببینید. بدنیست نگاهی هم به پروژه رو به پیشرفت Prelude Hybrid IDS ( حداقل What is Prelude Hybrid IDS را بخوانید.) بندازید.

* این مطلب مقدمه ای است برای سری نوشته های امنیت در عمق که در Secure2S بیشتر در مورد آن ها خواهید خواند. لطفا نظرات و پیشنهادات خود را در میان بگذارید. مجموعه نوشته های امنیت در عمق، تلاش خواهد کرد تا به امنیت در شبکه های بزرگ و تجاری و همچنین نکات امنیتی که کمتر به آن ها پرداخته می شود بپردازد.

منبع : http://secure2s.net/fa/1385/11/11/distributed-ids/

 

 |+| نوشته شده در  جمعه دوم فروردین 1387ساعت 11:1 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

بیت‌تورنت چیست؟

بیت‌تورنت (BitTorrent) هم نام برنامه کاربردی مشتری  بر مبنای توزیع فایل در شبکه‌های نظیر-به-نظیر  است و هم نام یک پروتکل اشتراک فایل، که هر دو در آوریل 2001 توسط برنامه‌نویسی به نام برام کوهن ایجاد شده‌اند. بیت‌تورنت به منظور توزیع حجم بزرگی از اطلاعات بدون کاهش در مصرف منابع پر هزینه سرور و پهنای باند طراحی شده است.

  • بیت‌تورنت چیست؟

  • اصطلاحات BitTorrent

  • BitTorrent چگونه کار می‌‌کند؟

    بیت‌تورنت چیست؟

    اولین برنامه کاربردی BitTorrent به زبان Python نوشته شد و source code آن با ورژن 4.0 تحت لیسانس BitTorrent open source ارائه شد. تعداد زیادی از کلاینت ها (نرم افزارها) با زبان های مختلفی برای اجرا بر روی پلت فورم های مختلف، نوشته شده اند.

    BitTorrent پروتکلی ست که به منظور ارسال فایل طراحی شده است. در واقع نوعی ارتباط peer-to-peer می‌‌باشد که کاربران مستقیما به یکدیگر متصل می‌‌شوند و به ارسال و دریافت قسمتی از فایل می‌‌پردازند. گر چه فعالیت های تمامی کاربران توسط یک سرور مرکزی به نام Tracker هماهنگ می‌شود، اما این سرور از محتویات فایل هایی که منتقل می‌شود بی اطلاع است. در نتیجه تعداد زیاده از کاربران با پهنای باند محدود Tracker مربوطه قابل پشتیبانی هستند. فلسفه کلیدی BitTorrent اینست که کاربران باید همزمان با دان لود کردن اطلاعات (دریافت inbound)، آپلود (ارسال outbound) نمایند. در این صورت پهنای باند شبکه با حداکثر کارایی بکار گرفته می‌شود. BitTorrent به نحوی طراحی شده است که بر خلاف پروتوکل های انتقال دیگر با افزایش تعداد افراد مشتاق برای دریافت یک فایل مشخص، کارا تر می‌شود. برای توصیف بهتر این روند می‌‌توان آن را به گروهی از افراد تشبیه کرد که دور یک میز نشسته اند. هر کدام از این افراد سعی دارند که کپی کاملی از یک کتاب را دریافت کنند. نفر اول اعلام می‌‌کند که صفحات 1-10، 23، 42-50 و 75 را دارد و نفرات سوم، چهارم و پنجم هر کدام قسمت هایی از این صفحات را ندارند. بنابراین هر یک برای گرفتن صفحات، خود را با نفر اول هماهنگ می‌‌کنند. نفر دوم اعلام می‌‌کند که صفحات 11-22، 31-37 و 63-70 را دارد. نفر اول، چهارم و پنجم به نفر دوم می‌‌گویند که بعضی از صفحات او را می‌‌خواهند و او هم کپی آن صفحات را به آنها می‌‌دهد. این روند ادامه می‌‌یابد تا وقتی که همه افراد کپی تمام کتاب را به دست بیاورند. همچنین دور این میز شخص دیگری وجود دارد که کپی کل کتاب را دارد. بنابراین احتیاج ندارد که برایش کپی صفحه‌ای فرستاده شود. او صفحاتی را که هیچ کس ندارد بین افراد پخش می‌‌کند. در ابتدا هنگامی که افراد دور میز می‌‌نشینند، باید از او بخواهند که اولین سری کپی صفحات خود را به آنها بدهد. گرچه افراد سعی می‌کنند که صفحات مشابه را از او نگیرند، بعد از مدتی همگی اکثر کپی کتاب را دارند. بدین ترتیب این فرد می‌‌تواند کتابی را که دارد در اختیار افراد زیاده قرار دهد بدون اینکه مجبور باشد کل کپی را به تمام افراد بدهد. او می‌‌تواند در عوض، قسمت های مختلف کتاب را به افراد متفاوت بدهد. و آنها قادر خواهند بود که این قسمت ها را در بین خود پخش کنند. به این فرد که کل کتاب را در اختیار دارد، در اصطلاح BitTorrent، Seed یا دانه گفته می‌شود. BitTorrent با برنامه‌های کاربردی peer-to-peer دیگر مانند WinMX, Kazza, Gnutella, Emule و ... فرق دارد و مثل آنها محدوده مشخصی ندارد. به عبارت دیگر BitTorrent به وب اضافه شده است به این معنی که تمامی عملیات جستجو و تهیه لیستی از فایل های در دسترس در وب انجام می‌شود و هنگامی که فایل مورد نظر را پیدا کردیم با کلیک بر روی آن، برنامه کلاینت اجرا می‌شود و شروع به دریافت می‌‌کند.


    اصطلاحات BitTorrent

    مفاهیم مختلفی در ارتباط با BitTorrent وجود دارند که به معرفی آنها می‌‌پردازیم.

    torrent یا سیل (جریان شدید) : این اصطلاح معمولا به فایل متادیتای کوچکی گفته می‌شود که از وب سرور(web server) با پسوند .torrent در یافت می‌‌کنیم. متادیتا در اینجا به معنی فایلی ست که اطلاعاتی در مورد داده‌ای که می‌‌خواهیم دان لود کنیم دارد و نه خود داده. این فایل هنگامی که بر روی لینک دان لود آن در یک وب سایت کلیک می‌‌کنید، به کامپیوتر ما فرستاده می‌شود. همچنین می‌‌توان فایل torrent را بر روی سیستم محلی خود ذخیره کنیم و بعدها با کلیک بر روی آن، اقدام به دریافت آن کنیم.

    Peer یا قرینه : Peer کامپیوتر دیگری ست که به آن متصل شده و داده را منتقل می‌‌کنیم. معمولا یک Peer تمام فایل را ندارد. در غیر این صورت به آن Seed می‌‌گوییم. همچنین به Peer ها Leech یا زالو هم گفته می‌شود که از کامپیوترهایی که دان لود خود را کامل کرده‌اند و کلاینت BitTorrent خود را فعال نگهداشته و به صورت Seed عمل می‌‌کنند، متمایز شوند.

    Leech یا زالو : به Peerای گفته می‌شود که به خاطر نسبت اشتراک پایین خود بر روی swarm تاثیر منفی می‌‌گذارد. به بیان دیگر بیشتر از اینکه آپ لود کند، دان لود می‌‌کند. اکثر Leechها، کاربرانی هستند که اتصالات نامتقارن دارند و کلاینت BitTorrent خود را بعد از اتمام دان لود برای عمل seeding باز نمی‌گذارند. حتی بعضی از Leechها به عمد با کلاینت های تنظیم شده و یا محدود کردن سرعت ارسال، از آپ لود کردن جلوگیری می‌‌کنند. با این وجود اصطلاح Leech می‌‌تواند به جای Peer نیز بکار گرفته شود.

    Seed یا دانه : کامپیوتری ست که کپی کامل یک torrent مشخص را دارد. هنگامی که کامپیوتر ما به طور کامل فایل را دان لود کرد، تا زمانی که روی دکمهٔ پایان کلیک نکنیم و یا به هر طریق آن را نبندیم، باز باقی می‌‌ماند. به این عمل Seed بودن و یا Seeding می‌‌گویند. همچنین می‌‌توانیم یک کلاینت BitTorrent را با فایل کاملی شروع کنیم. به محض اینکه BitTorrent فایل را امتحان کرد، متصل شده و فایل مربوطه را برای افراد دیگر Seed می‌‌کند. در کل، بهتر است بعد از اینکه فایلی را به طور کامل دریافت کردیم، برای کمک به دیگران آن را Seed کنیم. همچنین هنگامی که فایل torrent جدیدی به Tracker فرستاده می‌شود، باید حداقل یک Seed موجود باشد که آن را برای دیگران قابل دستیابی کند. به یاد داشته باشید که Tracker هیچ چیز در مورد محتوای واقعی فایل ها نمی‌داند. بنابراین مهم است که بعد از upload کردن یک فایل torrent در Tracker، آن را Seed کنیم.


    Reseed یا کاشت دوباره : هنگامی که هیچ Seed ای برای فایل تورنت مورد نظر موجود نباشد و Peer ها با هم، کل فایل را نداشته باشند، تمامی Peer ها فایل ناقصی دارند و هیچ یک، قسمت های تکمیل کننده را ندارد. در این صورت کامپیوتری با فایل کامل (Seed)، باید به Swarm (گروه و دسته) متصل شود و قسمت های ناقص فایل را ارسال کند. این عمل کاشت دوباره نام دارد. معمولا یک درخواست برای عمل Reseed با تعهدی همراه است مبنی بر اینکه بعد از دان لود کامل فایل، فرد درخواست کننده باید برای مدت زمان مشخصی به منظور افزودن طول عمر به فایل تورنت به عنوان یک Seed عمل کند.

    Swarm یا گروه و دسته : به گروهی از ماشین ها گفته می‌شود که به طور مشترک و جمعی برای یک فایل خاص به یکدیگر متصل هستند. برای مثال اگر یک کلاینت BitTorrent را راه اندازی کنیم و به ما بگوید که به 10 Peer و 3 Seed متصل هستیم، Swarm شامل کامپیوتر ما و 13 نفر دیگر است.

    Tracker یا ردیاب : سروری ست در اینترنت که فعالیت های کلاینت های BitTorrent را هماهنگ می‌‌کند. هنگامی که تورنتی را باز می‌‌کنیم، ماشین ما با Tracker ارتباط برقرار می‌‌کند و لیستی از Peer ها را برای تبادل اطلاعات دریافت می‌‌کند. این کار به طور دوره‌ای و متناوب صورت می‌‌گیرد و Tracker میزان دان لود و آپ لود، میزان باقی مانده از فایل و وضعیتی که در حال حاضر داریم (شروع، پایان دان لود و توقف) را به ما نشان می‌‌دهد. اگر Tracker از کار بیفتد و بخواهیم یک تورنت را باز کنیم، قادر نخواهیم بود. اگر بعد از اتصال در حین ارتباط با Peer ها و دان لود کردن فایل تورنت، Tracker از کار بیفتد، قادر به ادامه انتقال با آن Peer ها خواهیم بود ولی هیچ Peer جدیدی قادر به برقرار کردن ارتباط با ما نخواهد بود. معمولا خطاهای Tracker ها موقتی هستند. بنابراین بهترین کار اینست که صبر کنیم و کلاینت را باز نگهداریم تا به سعی خود ادامه دهد.

    Downloading یا دریافت کردن : به عمل دریافت داده از کامپیوتر دیگر دان لود کردن می‌‌گویند.

    Uploading یا ارسال : به عمل فرستادن و ارسال داده به کامپیوتر دیگر گفته می‌شود.

    Share rating یا سرعت اشتراک : اگر از یک کلاینت آزمایشی با stats-patch استفاده می‌‌کنیم، می‌‌توانیم سرعت اشتراک را در یک پنل GUI مشاهده کنیم. که نشان دهندهٔ نسبت مقدار آپ لود شده به مقدار دان لود شده است. مقدارهای بکار برده شده، تنها برای قسمتهای در حال انتقال هستند نه برای کل فایل. اگر نسبت اشتراک نشان داده شده برابر با 1 باشد، بدین معنی ست که به همان میزانی که آپ لود نموده ایم، دان لود کرده ایم. هر چه این عدد بزرگ تر باشد نشان دهنده اینست که یه میزان بیشتری ارسال کرده اید. اگر این نسبت 0 بود، به این معنی ست که شما کل فایل را دریافت نموده اید و به عنوان Seed فعالیت می‌‌کنید. بنابراین هر چه بیشتر به ارسال ادامه دهید میزان این نسبت به سمت بی نهایت می‌‌رود. این نسبت تنها به منظور آگاهی کاربران محاسبه می‌شود. در کل برای کمک به دیگران بهتر است همیشه این نسبت را به حداکثر مقدار برسانیم.

    Distributed Copies یا کپی های توزیع شده : در بعضی از ورژن های کلاینت ها (نرم افزارها)، عبارت "متصل به n عدد seed و در حال مشاهده n.nnn کپی توزیع شده" را مشاهده می‌‌کنید. یک Seed ماشینی با فایل کامل است. با این وجود، Swarm می‌‌تواند در مجموع، کل فایل را داشته باشد بدون اینکه Seedای داشته باشد. و این همان چیزی ست که این عبارت بیان می‌‌کند.

    Choked یا مسدود شده : این اصطلاحی ست که در پروتوکل BitTorrent بکار رفته است و به حالتی از یک ارسال کننده فایل (uploader)اشاره دارد. وقتی که یک اتصال مسدود شده است به معنی ست که ارسال کننده در حال حاضر نمی‌خواهد داده‌ای به آن لینک ارسال کند. کلاینت BitTorrent، بنا به دلائلی سیگنالی به کلاینت های دیگر می‌‌فرستد که مسدود شدن این لینک را اعلام کند. اما معمولا بطور پیش فرض یک کلاینت (کلاینتی که بیشترین آپ لود را داشته است) آپ لود های فعال خود را باز می‌‌گذارد و بقیه کلاینت ها مسدود اعلام می‌‌شوند. مقدار پیش فرض 4 می‌‌باشد که مشابه تنظیمات کلاینت BUI آزمایشی ست که می‌‌توان تغییر داد. یک اتصال می‌‌تواند به دلائل دیگری نیز مسدود شود. به طور مثال هنگامی که یک Peer مشغول دریافت فایلی از یک Seed است که نمی‌خواهد داده‌ای را ارسال کند، اتصالش مسدود شده اعلام می‌شود. توجه داشته باشید که اگر هر اتصال دوطرفه و قرینه باشد، دو علامت نمایش انسداد برای هر اتصال (انتهای هر ارسال کننده) خواهیم داشت.

    Interested یا مشتاق : اصطلاح دیگری ست که در پروتوکل BitTorrent بکار برده می‌شود که در نتیجهٔ علامت انسداد ایجاد شده است و به نشان دهندهٔ حالتی ست که فرد دان لود کننده در انتظار اتصال و دریافت قسمتی از فایل است. فرد دان لود کننده هنگامی مشتاق نامیده می‌شود که در کلاینت مقابل، قسمتی از فایل موجود باشد که این فرد احتیاج دارد.

    Snubbed یا منع شده : اگر کلاینت هیج داده‌ای را بعد از مدت زمان مشخصی (بطور پیش فرض 60 ثانیه) دریافت نکند، منع شده نامیده می‌شود. این حالت هنگامی رخ می‌‌دهد که از ارسال Peer مقابل، برای مدتی جلوگیری شده باشد. بعضی از اوقات کلاینت در حالتی قرار می‌‌گیرد که با اینکه به تعداد زیادی از Peer ها متصل است، ولی توسط تمام آنها مسدود شده است. این کلاینت از علامت منع شده استفاده می‌‌کند تا از این موقعیت خارج شود. این علامت نشان می‌‌دهد که یک Peer که می‌‌خواهد تکه هایی از فایل را انتقال دهد، برای مدتی چیزی ارسال نکرده است.



    Optimistic unchoking یا اتصال مجدد خوشبینانه : کلاینت ها به طور متناوب، لیستی از ارسال کننده ها را بازنگری می‌کنند و تلاش می‌کنند تا اتصالات جدیدی را که قبلا مسدود شده بودند، برقرار کنند و اتصالاتی را که برقرار کرده بودند را مسدود کنند. این اعمال را می‌‌توان هر 10 یا 20 ثانیه با مشاهدهٔ "Advanced" از یکی از کلاینت ها بررسی کرد.


    BitTorrent چگونه کار می‌‌کند؟


    پروتوکل BitTorrent فایل ها را به تکه‌های کوچک، معمولا یک چهارم مگابایت (256 KB) می‌‌شکند. هر چه اندازهٔ فایل بزرگتر باشد، تکه ها نیز بزرگتر خواهند بود. به طور پیش فرض اندازه تکه ها برای یک فایل 4.37 گیگا بایتی، 4 مگابایت می‌‌باشد. Peerها تکه هایی را که ندارند از یکدیگر دان لود می‌کنند و تکه هایی را که Peer های دیگر ندارند برایشان آپ لود می‌‌کنند. این پروتوکل به اندازهٔ کافی هوشمند است که Peerای را انتخاب کند که بهترین اتصال را داشته باشد. برای بالا بردن کارایی کل swarm، کلاینت های BitTorrent قسمتهایی را درخواست می‌کنند که کمیاب ترند. به عبارت دیگر قسمتهایی که در Peer های کمتری وجود دارند، می‌‌توانند برای Peer های بیشتری مفید باشند. تکه‌های فایل ها معمولا به ترتیت دان لود نمی‌شوند و احتیاج به مرتب سازی در ماشین دریافت کننده دارند. توجه داشته باشید که کلاینت ها قبل از اینکه کل فایل دان لود شود، تکه ها را برای Peerهای دیگر آپ لود می‌‌کنند. بنابراین اشتراک گذاری برای هر Peer با یک فایل کوچک با پسوند .torrent آغاز می‌شود که یک فایل اشاره گر (pointer) است که شامل اطلاعاتی از قبیل نام فایل و اندازه آن دارد.

    دان لود کردن با BitTorrent بسیار آسان است. با یک فایل با پسوند .torrent آغاز می‌شود. هر فرد که می‌‌خواهد فایل را دان لود کند، ابتدا باید این فایل کوچک را دریافت نماید و آن را توسط نرم افزارهای کلاینت BitTorrent باز کند. فایل تورنت، آدرس tracker ای را که لیستی از کاربرانی که مشغول دان لود فایل هستند و محل قرار گرفتن تکه‌های فایل را می‌‌داند، به کلاینت می‌‌دهد. برای هر منبع قابل دسترس، کلاینت متوجه می‌شود که کدام بلاک از فایل مورد نظر قابل دستیابی هستند. به محض اینکه کلاینت دریافت یک بلاک را کامل کرد، آن را هش (Hash) می‌‌کند تا مطمئن شود که این بلاک با فایل تورنت متناسب است. سپس به دنبال کسی می‌‌گردد که این فایل را برایش آپ لود کند.

    اگرچه BitTorrent پروتوکل خوبی برای کاربران پهن باند (BroadBand) می‌‌باشد، برای اتصالات dial up که بطور مداوم قطع می‌‌شوند، کمتر کارایی دارد. به بیان دیگر سرورهای HTTP زیادی اتصالات خود را برای ساعات طولانی قطع می‌‌کنند. در حالیکه تورنت های زیادی وجود دارند که هنوز دان لود خود را تکمیل نکرده اند.

منبع: wikipedia

 

 |+| نوشته شده در  جمعه دوم فروردین 1387ساعت 10:25 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

Parallel and Distributed Processing Group -- GPPD

UFRGS - Universidade Federal do Rio Grande do Sul

Institute of Informatics

History

Parallel and Distributed Processing Group (GPPD) is a research group which has several projects concerning parallel and distributed processing. It is located within the Institut of Informatics, at UFRGS, Brazil. GPPD has started its history during 80's with the return of prof. Philippe Navaux from his doctorate in France. Initially, the research was focused on computer architectures, parallel processing and performance evaluation. With the return of prof. Claudio Geyer from Grenoble (France) in 1991, the group was named GPPD, integrating research topics redarding parallel and distributed processing. In 1995, with the conclusion of the Tiaraju Diverio's doctorate, the group has included research about high performance applications, parallel algorithms and computational complexity, as well as the creation of high performance processing courses and events.

 

The GPPD has always maintained close relations with French Universities and Laboratories through international cooperation projects. Joint researches originated from such projects made possible the doctorate of several researchers with master degree from UFRGS. Besides France, GPPD has nowadays copperations with several countries, such as Germany, United States, England, Spain and others.

  • Research

    During last years, the parallelism has been proposed as the main solution to increase computing systems performance. Several parallel machines based on new architectures have emerged on the market. However, in these architectures there are programming and management difficulties greater than those found in sequential machines. The XXI century has been marked by growing advance of cluster computing. This architecture is composed by simple machines interconnected through high performance network, allowing the assemblage of low cost systems that offer better computational power.

    The complexity regarding development of distributed systems is a serious problem in those architectures usage. Sometimes, programmers must know some internal details about the operating system and its communication subsystem. Thus, parallel and distributed system development is a more complex task than sequential one and it can be simplified using adequate software tools.

    GPPD considers solutions and alternatives from problems involved on parallel and distributed applications development. Following this idea, the group has different research approaches: heterogeneous network operating system (HetNOS project), parallelism and distribution exploration in logic programming (OPERA project), to foment and to develop cluster technologies (LabTec project), development of middleware for grid and mobile computing (ISAM project), web services-based Portal to unify the access to multiple clusters (JavaWSPad project).

  •  

  • The main research areas are related to (in alphabetical ordering):

    Cluster and Grid computing
    Image processing
    Mobile and Ubiquitous Computing
    Object-oriented distributed languages
    Parallel and distributed algorithms
    Parallel Prolog
    Performance evaluation
    Simultation and Games
    Processor Architecture
    Tools and environments for parallel and distributed programming
    Visual debugging and programming

  •  

    Projects


    APSE - Superscalar Processor Architectures

    Coordinator: Prof. Philippe O. A. Navaux, PhD

    DECK - Distributed Execution and Communication Environment (as part of MultiCluster project)
    Coordinator: Prof. Philippe O. A. Navaux, PhD

    Direto - Advanced Systems for Email, Agenda and Catalog
    Coordinator: Prof. Cláudio Fernando R. Geyer, PhD

    Disperso - Distributed and Parallel Environments and Systems
    Coordinator: Prof. Cláudio Fernando R. Geyer, PhD

    DPC++ - Distributed Processing in C++ (as part of MultiCluster project)
    Coordinator: Prof. Philippe O. A. Navaux, PhD

    Group of Computational Mathematics - in Portuguese
    Coordinator: Prof. Tiarajú Asmuz Diverio, PhD

    HetNOS - Heterogeneous Network Operating System
    Coordinator: Prof. Cláudio Fernando R. Geyer, PhD

    MultiCluster - Support for Parallel Programming on Multiple Clusters
    Coordinator: Prof. Philippe O. A. Navaux, PhD

    OPERA - Parallel Prolog
    Coordinator: Prof. Cláudio Fernando R. Geyer, PhD

    PADI - PArallel Debugger Interface
    Coordinator: Prof. Philippe O. A. Navaux, PhD

    SEGIME - Medical Image Segmentation
    Coordinator: Prof. Philippe O. A. Navaux, PhD

    ISAM - Support Infrastructure for Mobile Applications
    Coordinator: Prof. Cláudio Fernando R. Geyer, PhD

    منبع : http://gppd.inf.ufrgs.br

     

     |+| نوشته شده در  جمعه دهم اسفند 1386ساعت 7:41 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    سیستم های مبتنی بر پردازنده‌های 4 هسته ای

    پردازنده‌هاي 4 هسته اي
    شركت اينتل اولين پردازنده چهار هسته اي خود را در اواخر سال گذشته ميلادي معرفي كرد.  واقعاً هدف اينتل از معرفي اين محصول جديد چيست؟
    شما در ماه‌هاي آينده اولين بازي‌هاي كامپيوتري كه توانايي استفاده از 4 هسته را دارند مشاهده خواهيد كرد. بازي‌هاي نظير RTS, Supreme Commander, Half-Life 2 Episode 2, Unreal Tournament 2007و Crysis كه در سال 2007 معرفي خواهند شد قادرند از تمامي توانايي‌هاي يك پردازنده 4 هسته اي استفاده كنند. علاوه بر بازي‌هاي كامپيوتري برخي از برنامه‌هاي صوتي و تصويري و برنامه‌هاي كه تصاوير سه بعدي را خلق مي‌كنند نيز نظير Adboe Premiere Pro 3.0 Pinnacle Studio 10 , و 3D Studio Max 8/9 نياز به پردازنده‌هاي چند هسته اي دارند.

    CPU جديد، هسته قبلي
    پردازنده‌هاي 4 هسته اي حال حاضر اينتل مبتني بر هسته‌ جديدي بنام Kentsfield هستند كه نخستين بار توسط اينتل در پردازنده Core 2 Extreme QX6700 بكار گرفته شد. هسته Kentsfield در حقيقت از دو هسته Conroe كه در يك بسته‌بندي قرار گرفته، تشكيل شده است.
    با توجه به اين موضوع و همانطور كه از نام پردازنده Core 2 Quad Q6600 مشخص است، اين پردازنده از دو پردازنده Core 2 Duo 6600 تشكيل شده است و پردازنده Core 2 Extreme QX6700 شامل دو پردازنده Core 2 Duo E6700 است. بنابراين Core 2 Quad Q6600 داراي فركانس 2/4 گيگاهرتز و Core 2 Extreme QX6700 داراي فركانس 2/66 گيگاهرتز است. هر دوي اين پردازنده‌ها از FSB 1066 مگاهرتز و حافظه نهان سطح 2 مگابايت (2 عدد كش 4 مگابايتي) استفاده مي‌كنند.
    در آزمايشات انجام گرفته روي پردازنده‌هاي چهار هسته اي، در برخي از بازي‌ها پردازنده‌ي چهار هسته اي QX6700 كارايي دو برابر سريع‌تر از پردازنده Core 2 Duo E6700 از خود به نمايش گذاشته است و در چندين آزمايش نيز كارايي دو برابر پردازنده Core 2 Extreme X6800 ارايه كرده است.

    پردازنده‌هاي 4 هسته اي داراي مصرف برق متفاوتي نسبت به پردازنده‌هاي دو هسته اي هستند. اين توان متفاوت موجب شده تا اكثر مادربردها‌ي كه از پردازنده‌هاي Core 2 Duo پشتيباني مي‌كنند قادر به پشتيباني از پردازنده‌هاي چهار هسته اي نباشند. بنابراين اگر قصد خريد پردازنده 4 هسته اي داريد و يا اگر به فكر ارتقا پردازنده سيستم‌تان در آينده هستيد حتماً در هنگام خريد مادربرد به قابليت پشتيباني از پردازنده‌هاي 4 هسته اي آن توجه كنيد.

    شركت گيگابايت يكي از چند سازنده مطرح مادربرد است كه در حال حاضر محدوده وسيعي از مادربردهايي را كه قادرند تا از پردازنده‌هاي 4 هسته اي پشتيباني كنند  معرفي كرده است.
    از بين مادربرد‌هاي موجود در اين ليست مادربرد 965P-DQ6 قادر است از پردازنده‌هاي 4 هسته ا‌‌ي آينده اينتل نيز پشتيباني كند. اين مادربرد از چيپست 965P اينتل استفاده كرده و داراي خازن‌هاي حالت جامد است. اگر به مادربردهاي موجود در ليست بالا دقت كنيد متوجه خواهيد شد كه تمامي مادربردهاي موجود در اين ليست بجاي خازن‌هاي الكتروليتي از خازن‌هاي حالت جامد استفاده كرده‌اند.

    منبع : http://www.avajang.com

     

     |+| نوشته شده در  یکشنبه پنجم اسفند 1386ساعت 9:35 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    High Performance SSH/SCP - HPN-SSH

    (PI) Chris Rapier PSC, Michael Stevens CMU, Benjamin Bennett PSC
    email: hpn-ssh@psc.edu
     

    Are you using HPN-SSH? Please let us know

    Abstract

    SCP and the underlying SSH2 protocol implementation in OpenSSH is network performance limited by statically defined internal flow control buffers. These buffers often end up acting as a bottleneck for network throughput of SCP, especially on long and high bandwith network links. Modifying the ssh code to allow the buffers to be defined at run time eliminates this bottleneck. We have created a patch that will remove the bottlenecks in OpenSSH and is fully interoperable with other servers and clients. In addition HPN clients will be able to download faster from non HPN servers, and HPN servers will be able to receive uploads faster from non HPN clients. However, the host receiving the data must have a properly tuned TCP/IP stack. Please refer to this tuning page for more information.

    The amount of improvement any specific user will see is dependent on a number of issues. Transfer rates cannot exceed the capacity of the network nor the throughput of the I/O subsystem including the disk and memory speed. The improvement will also be highly influenced by the capacity of the processor to perform the encryption and decryption. Less computational expensive ciphers will often provide better throughput than more complex ciphers.

    Performance Gap

    With many high bandwidth connections, there is a performance gap between what SSH is capable of and what the network link has the capacity to do. The difference between these two numbers is the performance gap, or the underutilized portion of your network connection. This gap, in most situations, is the direct cause of undersized receive buffers in the SSH congestion control mechanism. The graph below shows the optimal receive buffer versus the effective SSH channel receive buffer for various round trip times along a 100Mbps path


    The difference between the red and blue line is, essentially, wasted throughput potential along the path.

    Normal vs. HPN SCP Performance

    The effect of raising the SSH buffer sizes can be seen in the following chart. The standard SSH throughput, represented by the red columns, closely matches the expected throughput for this path if the receive buffer was limited to 64KB. By increasing the size of the SSH channel receive buffers throughput, represented by the blue columns, improved by as much as 1000%. The variation now seen is due to the complexity of the cipher and the limits of the hard drive.


    Clearly, the HPN patches significantly boost throughput performance. This enhancement is entirely from tuning the SSH buffer sizes.

    Patches

    All patches should be applied to the OpenSSH source files using the 'patch' utility from the command line. Building SSH from source is actually quite easy and the recommended method. Some binary packages will be made available as a convenience but will not be officially supported.

    Solaris Users: Some versions of Solaris use an older version of the patch and diff commands which are incompatible with this patch. Please make sure you are using a recent version of gnu patch.

    HPN-13

    This is the 1st revision of the 13th major version of the HPN patch set. The HPN12 patch set remains available here. There are two fundamental differences between the HPN12 and HPN13 patch set. The most significant of these is the inclusion of the Multi-Threaded AES-CTR (MT-AES-CTR) mode cipher. A paper and presentation about this work are available.

    This cipher mode introduces multi-threading into the OpenSSH application in order to allow it to make full use of CPU resources available on multi-core systems. As the canonical distribution of OpenSSH is unable to make use of more than one core, high performance transfers can be bottlenecked by the cryptographic overhead. HPN12 dealt with this by the introduction of None Cipher Switching. However, this technique is limited to those users who are willing to allow their data to be transferred without encipherment. It also was, by design, limited to bulk data transfers which further restricts its value to some users. The MT-AES-CTR mode will allow users, on multicore platforms, to attain throughput rates comparable or equal to unencrypted data transfers. In both lab and real world tests throughput at full GigE line rates, with full encryption, were commonly seen.


    Obviously, the MT AES-CTR mode cipher breaks through the single core bottleneck.


    MT-AES-CTR produces a cipherstream that is indistinguishable from the distributed Single Thread AES-CTR (ST-AES-CTR) mode cipher and is, to our knowledge, completely compatible with all other AES-CTR mode implementations. In other words, its completely backward compatible and will function in heterogenous connections with no problem. However, it is important to note MT-AES-CTR does impose additional overhead and may impose a performance penalty on single core machines. Additionally, the MT-AES-CTR mode cipher replaces the default ST-AES-CTR mode cipher. We are in the process of developing a method to allow user switching between the two modes. Additionally, this does rely on posix threads so you need to be sure they are properly supported in the target OS.

    The second major difference is in the way in which the HPN patch set will be made available. HPN13 will be provided as both a 'kitchen sink' and 'a la carte' distribution. The kitchen sink distribution will incorporate the dynamic window patches, none cipher switching, MT-AES-CTR mode ciphers, peak throughput display in SCP, and extended server side logging. The a la carte distribution will make each of these available as distinct patches which can be used independently of each other.

    HPN-13 Kitchen Sink

    Note: This patch has been gziped. You must gunzip it before applying it.

    OpenSSH Version HPN-SSH Patch
    OpenSSH 4.7p1 OpenSSH-4.7p1-hpn13 v1

    HPN-13 A la Carte

    These are the a la carte patches and some of the version numbers may skew from time to time. For example, if the peak throughput patch doesn't need to be updated for various OpenSSH releases the patch number won't be updated. Not all of the patches are available just yet, as the NONE cipher switching still needs to be broken out from the HPN12 patch set.

    Patch Description Source
    Dynamic Windows and None Cipher This is a basis of the HPN-SSH patch set. It provides dynamic window in SSH and the abilityt o switch to a NONE cipher post authentication. Based on the HPN12 v20 patch. This patch is gziped. For OpenSSH 4.7p1. openssh4.7-dynwindow_noneswitch.diff.gz
    Threaded CTR cipher mode This patch adds threading to the CTR block mode for AES and other supported ciphers. This may allow SSH to make use of multiple cores/cpus during transfers and significantly increase throughput. This patch should be considered experimental at this time. openssh4.7-CTR-threading.diff
    Peak Throughput This patch modifes the progress bar to display the 1 second throughput average. On completion of the transfer it will display the peak throughput through the life of the connection. For OpenSSH 4.7p1. openssh4.7-peaktput.diff
    Server Logging This patch adds additional logging to the SSHD server including encryption used, remote address and port, user name, remote version information, total bytes transferred, and average throughput. In order to use this patch you *must* direct syslogd to use an additional logging socket. This socket will be located in the sshd chroot, typically /var/empty. As such you will need to create a /var/empty/dev directory and add '-a /var/empty/dev/log' to your syslogd configuration. Example output can be seen here For OpenSSH 4.7p1. openssh4.7-server-logging.diff


    How to apply the patches.
    1. Get the OpenSSH source code from OpenSSH.org.
    2. Untar OpenSSH source.
    3. cd into the OpenSSH source directory
    4. If gzipped type 'zcat pathtopatch/patchfile | patch'
        Otherwise 'patch < pathtopatch/patchfile'
    5. type 'configure && make'
    6. type 'make install'


     |+| نوشته شده در  پنجشنبه دوم اسفند 1386ساعت 9:20 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    Multi-Threaded SSH/SCP

    Chris Rapier has presented a paper describing how to dramatically increase the speed of SCP networks. It appears that because SCP relies on a single thread in SSH, the crypto can sometimes be the bottleneck instead of the wire speed. Their new implementation (HPN-SSH) takes advantage of multi-threaded capable systems dramatically increasing the speed of securely copying files. They are currently looking for potential users with very high bandwidth to test the upper limits of the system.
    http://www.psc.edu/networking/projects/hpn-ssh/

     |+| نوشته شده در  پنجشنبه دوم اسفند 1386ساعت 9:3 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    تکنولوژی بکار رفته در cpu های دو هسته ای

    در چندین ماه گذشته پیشرفت های جدیدی در طراحی پروسسورها، بویژه از طرف شرکت AMD حاصل شد. این شرکت علاوه بر اینکه یک cpu با طراحی کاملا ْ۶۴ بیتی عرضه کرد که باعث برتری یافتن این شرکت در بازار کامپیوترهای رومیزی پیشرفته گردید، همچنین در حذف کنترل کننده‌های حافظه (MCH) پیشقدم شد که در عملکرد Athlon ۶۴ و چیپهای optron یک پیشرفت قابل ملاحظه نسبت به پروسسورهای intel به حساب می‌آید. اینتل به طور متقابل پروسسور سازگار ۶۴ بیتی را عرضه نمود. به تازگی نیز هر دو شرکت پردازشگرهای دوهسته ای را عرضه نموده‌اند، این پروسسورها بهتر از آن چیزی که شما انتظار دارید کار می‌کنند. پروسسورهای اینتل و AMD هر دو دارای دو هسته پروسسور، در حال کار در یک قالب می‌باشند که هر یک از هسته‌ها بصورت مستقل توابع و پردازشهای داده را انجام می‌دهند (در مورد اینتل این مورد کامل تر است) و هر دو این هسته‌ها توسط نرم افزار سیستم عامل هم آهنگ می گردند.
    در این مقاله سعی شده تا تکنولوژی که در این دو محصول استفاده شده و مقدار افزایش کارایی که شما می توانید از آنها انتظار داشته باشید بررسی گردد. در حال حاضر AMD فقط پروسورهای کلاس سرور opteron با دو هسته را بطور کامل به بازار عرضه کرده و بزودی Athlon ۶۴*۲ برای کامپیوترهای رومیزی را نیز به بازار عرضه می‌کند. در طرف مقابل اینتل در حال حاضر پنتیوم Extreme Edition ۸۴۰ رومیزی با دو هسته را به بازار عرضه نموده در حالی که خطهای تولید Pentium D و dual xeons هنوز متوقف نشده اند.
    با توجه به اینکه پروسسورهای دو هسته‌ای در اصل یک سیستم چند پروسسوره که در یک قالب قرار گرفته اند، می باشد. اجازه بدهید اینک چندین تکنولوژی که در سیستم های چند پردازشگر استفاده می شود را مورد بررسی قرار دهیم.

    چند پردازشگرهای متقارن ( SMP (symmetric Multi processing
    SMP روش مشترکی می باشد که چندین پردازشگر بطور جداگانه با یکدیگر در یک مادربرد کار می‌کنند. سیستم عامل با هر دو cpu تقریباً بطور یکسان کار می‌کند و کارهای مورد نیاز را به آنها ارجاع می‌دهد. چیپ‌های دوهسته ای جدید intel و AMD توانایی SMP را بصورت داخلی مورد توجه قرار داده‌اند. پروسسورهای سرور opteron دوهسته ای می‌تواند همچنین بصورت خارجی با دیگر چیپ‌های دوهسته ای ارتباط برقرار کند. (بشرط آنکه چیپ متقابل نیز دارای این خاصیت باشد)
    محدودیت اصلیSMP در پشتیبانی سیستم عاملها و نرم افزارها از این تکنولوژی می‌باشد. خیلی از سیستم عاملها (مانند ویندوز XP سری خانگی ) توانایی پشتیبانی از SMP را ندارند و از دومین پردازشگر استفاده نمی‌کنند. همچنین بیشتر برنامه‌های پیشرفته بصورت تک رشته ای کار می‌کنند، در اصل در هر زمان فقط یک پردازشگر در حالت فعال می باشد. برنامه های چند رشته‌ای از پتانسیل موجود در سیستم‌های دو یا چند پرازشگر، می‌توانند نتایج مفیدتری بگیرند، ولی به صورت کامل عمومیت ندارد.
    در گذشته intel و AMD سعی داشته‌اند تا تکنولوژی جدیدی مثل SMD را بیشتر برای پردازشگرهای سرور پیشرفته مانند opteron و Xeon استفاده نمایند ( البته تا قبل از پنتیوم ۳ )

    Hyperthreading
    این تکنولوژی بصورت اختصاصی توسط اینتل در پردازشگرهای چند هسته‌ای بکار گرفته شده است. این تکنولوژی قبلاً نیز توسط این شرکت بکار گرفته ‌شده‌ بود. اینتل برای آنکه از منابع CPUبنحو بهتری استفاده نماید فقط قسمتهایی که کار پردازش اطلاعات را انجام می دهد را تکثیر کرده است. یعنی آنکه منابع داده در داخل CPU بصورت مشترک استفاده می‌شد. ایده hyperthreading برای دو برابرکردن مقدار فعالیت چیپ می‌باشد تا آنکه کاهش عملکرد سیستم که در اثر فقدان حافظه Cash روی می‌دهد کمتر گردد همچنین بصورت تئوری نشان داده شده که منابع سیستم کمتر تلف می‌‌گردند.
    در صورتی که CPU های hyperthreading مانند دو پروسسور حقیقی بنظر می رسد. ولی این CPU ها نمی‌توانند عملکردی مشابه دو CPU مجزا مانند CPU های دوهسته ای داشته باشند. زیرا در CPU های دو هسته ای دو “Threads”مشابه بطور همزمان و با Cash ‌های جداگانه L۱ و L۲ می‌توانند اجرا گردند که این عمل در پردازشگرهای hyperthreading قابل انجام نمی‌باشد.
    یکی از چیپهای جدید اینتل بنام ، پردازشگر پنتیوم Extreme Edition ۸۴۰ ، در داخل هر هسته خود از تکنولوژی hyperthreading نیز پشتیبانی می‌کند، یعنی آنکه در یک سیستم عامل آن بصورت چهار پردازشگر حقیقی دیده می‌شود.

    دو چیپ در یک قالب … چرا؟
    چرا دو شرکت اینتل و AMD بطور ناگهانی شروع به توزیع پردازشگرهای دو هسته‌ای کردند؟
    اول از همه رقابت چنانچه بعداً بیان خواهیم کرد AMD از ابتدا توانائی بالقوه دوهسته‌ای را در پردازشگرهای ۶۴ بیتی خود داشت. ساختمان ورودی و خروجی برای دومین هسته در CPU های فعلی ۶۴ بیتی AMD موجود می‌باشد.
    هیچ شرکتی نمی تواند دیگران را از بدست آوردن تکنولوژی‌های جدید منع نماید و AMD در حال حاضر با موفقیت چشمگیر خط تولید پرداشگرهای ۶۴ بیتی آسودگی را از intel سلب نموده ‌است.
    برای اینتل ضروری می‌باشد که دارای یک تولید تخصصی در تکنولوژی دوهسته ای ‌باشد تا رقابت با شرکاء تجاری خود را حفظ نماید.
    دوم، کارایی می‌باشد. مطمئناً برنامه‌های کاربردی چند رشته‌ای در پردازشگرهایی که توانایی انجام چند پردازش را دارند در پردازشگرهایی که یک پردازش را در هر زمان انجام می‌دهند، بهتر عمل خواهند نمود.
    البته برای سیستم های چند پردازشگره یک ایراد عمومی وجود دارد و آن تاْخیری می‌باشد که این CPU ها در اجرای کار سیستم بوجود می آورند. به بیان ساده در حال حاضر روشی برای سیستم عامل‌های موجود وجود ندارند تا پردازشها را بطور کاملاً مساوی در بین پردازشگرها تقسیم نماید، پردازشگر دوم عموماً بایک مداخله کمتر و کارایی پایین‌تر کارمی‌کند، در صورتی که ممکن است پردازشگر اول بصورت ۱۰۰% در حال پردازش ‌باشد.
    سومین دلیل کمتر نمایان است، ناامیدی AMD و اینتل می‌باشد، هر دو شرکت با یک مانع جدی برای افزایش سرعت پردازشگرها و کوچکتر کردن اندازه قالب آنها روبرو شده اند تا این مانع حذف نشود و یا اینکه تا کاربران عمومی متوجه نشوند که GHZ به تنهایی کارایی را بیان نمی‌کند. هر دو شرکت برای دست یافتن به هر پیشرفت که کارایی پردازشگرها را بهبود بخشید تلاش خواهند نمود و تقریباً دلیل اصلی بوجود آمدن پردازشگرهای دو هسته ای را می‌توان همین دلیل سوم بیان نمود.

    دسترسی AMD به تکنولوژی دو هسته ای

    فرم فاکتور فعلی پردازشگر ۶۴ اتلن به طراحی دو هسته ای خیلی نزدیک می‌باشد. وجود کنترل کننده‌های Hypertransport و کنترل کننده حافظه درقالب چیپهای فعلی ۶۴ اتلن به معنی آنست که اضافه نمودن دومین هسته در داخل چیپ چندان مشکل نمی‌باشد.
    بدلیل رابط NorthBridge که AMD برای اتلن ۶۴ تهیه کرده‌ است کنترل کننده حافظه و رابط Hypertransport در داخل چیپ پشتیبانی می گردد. این به چیپ‌های دوهسته‌ای امکان می دهد که از داخل خود پردازشگر با یکدیگر ارتباط برقرار کنند.

    تعداد ترانزیستورهای پردازشگرهای اتلن ۶۴*۲ بیش از دو برابر پردازشگرهای اتلن ۶۴ می‌باشد. با توجه به اینکه در ساختن CPU های جدید از روش ۹۰nm استفاده می شود سایز کل چیپ کمی افزایش پیدا کرده و ولتاژ عملکرد ۱.۳۵ تا ۱.۴ می‌باشد و گرمای خروجی به بیش از ۱۱۰w کمی افزایش می‌یابد.
    هر هسته پردازشگر حافظه Cash L۱ و L۲ مخصوص به خود را دارد، ۱۲۸ KB برای L۱ و بسته به مدل ۵۱۲ KB تا ۱ MB برای L۲.

    دو برتری مهمی که AMD در CPU های دو هسته‌ای دارد عبارتند از اینکه :
    “Crossbar Switch” که آدرسها را جمع‌آوری کرده و توزیع می کند و داده را از هر هسته به هسته دیگر یا باقی سیستم توزیع می کند در حال حاضر امکان اضافه شدن دومین هسته را دارد.
    موفقیت دیگر AMD که از نظر مصرف کننده خیلی مهم می‌باشد امکان استفاده اتلن ۶۴*۲ از مادربردهای سوکت ۹۳۹/۹۴۰ می باشد و فقط لازم است که شرکت تولید کننده مادربرد BIOS را برای پشتیبانی از خصوصیات جدید به روز رسانی نماید.

    دسترسی اینتل به پردازشگر دو هسته ای
    با توجه به اینکه اینتل مانند AMD دارای مدل قبلی برای اضافه کردن هسته جدید در داخل یک قالب CPU نبود، برای ساخت آن مدل جدیدی را طراحی نمود که البته دارای نواقصی نسبت به مدل AMD می‌باشد.
    پنتیوم D در اصل از دو پردازشگر “پرسکات” پنتیوم D در یک قالب تشکیل شده است ، این پردازنده دارای مزیت داشتن دو حافظه کش L۱ و L۲ برای هر هسته بطور مجزا می‌باشد، ولی دارای نواقصی نیز می باشند از جمله اینکه این دو پرداشگر برای ارتباط برقرار کردن با یکدیگر باید، از NorthBridge و FSB خارج پردازشگر استفاده نمایند. تعداد ترانزستورها برای چیپ های جدید بیش از ۲۳۰ میلیون و گرمای تولید شده به مقدار فوق‌العاده ۱۳۰W برای پنتیوم Extereme Edition می‌رسد.

    یکی از بزرگترین معایب طراحی اینتل نسبت به AMD که سوکت‌های ۹۳۹ را برای طراحی پردازشگرهای دو هسته‌ای خود حفظ نمود آن است که راه حل دو هسته‌ای اینتل نیاز به یک جفت چیپ ست جدید بنامهای ۹۵۵X و ۹۴۵P دارد. شرکت nvidia اخیراً ویرایش اینتل SLI که پروسسورهای دو هسته‌ای را پشتیبانی می‌کند را به بازار عرضه کرده ‌است که این مورد هم زمان بیشتری را مصرف و هم هزینه‌ای اضافی برای مصرف کننده در پی دارد.

    گرما و پهنای باند :
    هر دو پردازشگرهای تک هسته‌ای AMD و Intel گرمای فوق‌العاده زیادی تولید می‌کردند، که هیت سینک‌های فوق‌العاده بزرگی که برای آنها استفاده می ‌شود گویای این مطلب می‌باشد. حال با اضافه کردن یک هسته اضافی چگونه می‌توان این پردازشگرها را خنک نمود.
    ولی AMD و Intel از چندین روش برای خنثی کردن این موضوع استفاده کرده‌اند، ابتدا آنکه در ساخت این پردازشگرها از تکنولوژی ۹۰nm استفاده شده که باعث کوچکتر شدن CPU ونزدیکتر شدن قسمتهای مختلف بر روی CPU شده و در نتیجه گرمای تولید شده را به مقدار زیادی کاهش می‌دهد و دوم آنکه فرکانس کاری این CPU ها بمقدار حدود ۴۰۰MHz نسبت به آخرین CPU های تک هسته ای کاهش پیداکرده و همچنین هسته دوم همیشه بصورت کامل کار نمی‌کند این سه مطلب باعث می‌گردد که گرمای تولید شده بمقدار خیلی زیادی نسبت به CPU های تک هسته‌ای افزایش نیابد.
    پهنای باند بکار رفته محدودیت بزرگتری برای CPU های دو هسته‌ای می‌باشد، زیرا هر دو AMD و Intel پهنای باند برای CPU های تک هسته‌ای را برای این نوع CPU ها نیز حفظ کرده‌اند و طرحی برای افزایش آن ندارد.

    دو پردازشگر تک هسته ای در مقابل یک پردازشگر دو هسته‌ای
    محاسبات و بررسی طرحهای موجود نشان می‌دهد که دو چیپ اپترن AMD باید دارای سرعت بالاتری نسبت به یک چیپ دو هسته‌ای باشد، زیرا هر یک از این OPTERON ها دارای یک کنترل کننده حافظه مجزا می‌باشد ولی در چیپ‌های دو هسته‌ای هر دو هسته باید یک کنترل کننده حافظه را بصورت مشترک استفاده کنند.
    در مورد اینتل این موضوع مطرح نمی‌باشد زیرا در هر دو طرح یک کنترل کننده حافظه در خارج از CPU استفاده می شود و فقط در طراحی دوهسته ای این مسیرها کوتاه‌تر می‌باشند که چندان پارامتر مطرحی در افزایش سرعت نمی‌باشد.
    یکی از بزرگترین مزایای پردازشگرهای دو هسته‌ای نسبت به دو پردازشگر تک هسته‌ای بحث اقتصادی آن می‌باشد، زیرا اولاً خرید یک CPU دو هسته‌ای از دو CPU تک هسته‌ای ارزانتر می‌باشد و از طرف دیگر باید قیمت مادربرد را نیز لحاظ کرد که در این صورت این موضوع بیشتر جلب توجه می‌نماید.

    لینک مقاله در تالار های گفتگوی علمی آکادمیست :: دانشجویان

    کپی رایت و منابع
     
     |+| نوشته شده در  سه شنبه سی ام بهمن 1386ساعت 7:59 قبل از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    فناوری P۲p و بیداری همیشگی اینترنت

    اینترنت در یک دهه گذشته رشد انفجاری پیدا کرده به طوری که با گذشت چندین سال و افزایش شمار کاربران جهانی، افت سرعت تبدیل به چالشی اساسی برای آنشده است اما به نظر می رسد ظهور فناوری جدیدی به نام شبکه های P۲P اینترنت را از فرو رفتن به خواب همیشگی بیدار کند! «تد استیونز» ۸۳ ساله از سناتورهای برجسته آلاسکا سال گذشته و زمانی که اینترنت را یک سری لوله خطاب کرد، به شدت مورد تمسخر قرار گرفت. گرچه این توصیف شاید خام به نظر برسد اما وی در سخنرانی اش به نکته منطقی اشاره کرد: این امکان وجود دارد که این لوله ها مسدود یا کند شوند و این مشکل ممکن است به دلیل انفجار عمومیت یافتن ویدئوهای دیجیتال زودتر از تصورات فعلی روی دهد.برنامه های تلویزیونی، کلیپ های YouTube، متحرک سازی ها و سایر برنامه هایی نظیر آنها این روزها بیش از ۶۰ درصد از ترافیک اینترنتی را موجب شده اند.
    این عقیده شرکت کش لاجیک در کمبریج انگلیس است که در عرصه فروش سیستم های انتقال رسانه به ارایه کنندگاه خدمات اینترنتی (ISPs) تخصص و فعالیت دارد. هو ژانگ از دانشمندان رایانه در دانشگاه کارنگی ملون می گوید: تصور من این است که در دو سال آینده رقم ۶۰ درصد یاد شده به ۹۸ درصد برسد. ابرازعقیده وی به این معناست که امکان دانلود ویدئوهای مختلف از اینترنت با سرعت پایین تری صورت خواهد گرفت.
    این دانشمند معتقد است، کمکی در راه است تا به این نگرانی پایان داده شود. وی در این خصوص فناوری peer-to-peerیا P۲P یا همان فناوری توزیع فایل را معرفی می کند. البته در این میان نگرانی خاصی نیز در خصوص امکان شکل گرفتن دزدی های اینترنتی وجود دارد اما این دانشمند می گوید: فناوری P۲P را می توان مورد استفاده قرار داد و با استفاده از آن به کمک صاحبان دامنه های قانونی اینترنتی و شرکت های خدمات دهنده اینترنتی آمد تا ویدئوهای بیشتری را بدون اشغال شدن حجم بیش از حد اینترنت و در نتیجه کاهش سرعت آن ارایه کنند.برای ژانگ و سایر طرفداران استفاده از فناوری P۲P این فناوری ساختاری نوین است. همواره این گونه بوده است که ویدئو و سایر محتویات وب همچون انشعابات شاخه ای درختان به دست مشتریان و کاربران می رسد.
    در این میان شرکت های خدمات رسان مرکزی همچون بدنه اصلی درخت عمل می کنند و در ادامه سرورهای توزیع کننده چند گانه به عنوان شاخه های اصلی انجام وظیفه می کنند. پس می توان تصور کرد که کاربران و دارندگان رایانه ها برگ های این درخت هستند. حال اگر یک شاخه قطع شود تمامی برگ های آن نیز با آن خواهند رفت.در این صورت جریان اطلاعات به برگ ها یا همان کاربران تنها در یک مسیر صورت گرفته و در نهایت توانایی رایانه ها برای دریافت و انتقال داده ها نا هماهنگ و نامتوازن خواهد شد.اما در شبکه های P۲P وضع فرق می کند.
    در این شبکه ها هیچ سرور مرکزی وجود ندارد و هر رایانه و کاربر اطلاعات و داده ها را با سایر کاربران و رایانه ها در یک فرآیند همیشه تغییر کننده و به هم تنیده تبادل می کند. این فرآیند به معنای آن است که سرورها و ارتباطات شبکه های سنگینشان حجم کمتری از بار را تحمل کرده و اطلاعات نیز به وسیله رایانه های متقابل ارایه می شود که این امر در نهایت به نجات باند پهن در هسته اینترنت منجر می شود. در این سیستم اگر یک کاربر و رایانه از مدار خارج شود، کاربر و رایانه ای دیگر جای خالی وی را پر می کند و حتی توجه به این نکته نیز جالب توجه است که افزایش کاربران بیشتر به چنین شبکه ای قدرت P۲P را بیشتر می کند. با همه این اوصاف هنوز دو مانع جدی وجود دارد: نخست آنکه پیشرفته ترین شبکه های P۲P نظیر BitTorrent برای ایجاد تعادل در انتقال اطلاعات به رایانه های شخصی فایل های بزرگ را به فایل های کوچکتر می شکنند.
    حال یک رایانه برای مونتاژ دوباره فایل ها و شکل گیری فایل اولیه باید از باند پهن استفاده کند. دوم آنکه سرورها نسبت به ترافیک P۲P بی میل هستند چون با ورود P۲P سرورهای اینترنتی سهم قابل توجهی از بازار خود را از دست می دهند و این یعنی ضرری بزرگ!با این حال ژانگ و سایر متخصصان شبکه ای معتقدند در حال نزدیک شده به حل این مشکلات هستند. در دانشگاه کورنل، پاول فرانسیس از دانشمندان برجسته رایانه در حال بررسی و آزمایش یک سیستم P۲P موسوم به Chunkyspread است که بهترین درختان وحلقه های تابیده را با یکدیگر ترکیب می کند. در این سیستم شبکه ای رایانه های عضو در یک درخت کلاسیک چیده شده اما امکان ارتباط با یکدیگر را نیز دارند که در نتیجه حجم وارد بر شاخه ها کم می شود.
    ژانگ وسایرمتخصصان معتقدند که فناوری جدید یاد شده همچنین می تواند ترافیک P۲P را برای سرورهای اینترنتی مطبوع تر سازد. از آن گذشته در حال حاضر اپراتورهای اینترنتی برای اینکه چه نوع جریان اطلاعاتی در شبکه هایشان سیال باشد، ایده های محدودی دارند. ژانگ در تشکیلاتش در آمریکا در حال طراحی و تولید نرم افزاری است که اطلاعات P۲P را تشخیص داده که این امر به ISPs ها این امکان را می دهد تا تصمیم بگیرند چه حجم از اطلاعات را حمل کنند.در حال حاضر شبکه ها و شرکت های سخت افزاری جهان چشم به فناوری های در حال ظهوری نظیر P۲P دوخته اند تا شاهد برطرف شدن مشکلات آتی که اینترنت با آن مواجه خواهد بود باشند.

    --------------
    روزنامه ابرار اقتصادی
     
     |+| نوشته شده در  چهارشنبه بیست و چهارم بهمن 1386ساعت 6:55 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    با Thin Clientها آشنا شوید

    همچنان كه فناوری اطلا‌عات، توسعه بیشتری می‌یابد، شبكه‌ها نیز به عنوان یكی از پیامدهای این توسعه اهمیت بیشتری می‌یابند. اما شبكه‌ها فقط منحصر به انواع متداول LANها یا WANها نمی‌گردند و شبكه‌سازی روش‌های دیگری نیز دارد. در این زمینه تجهیزاتی مانند Thin Clientها، Net PCها و یا Network computerها مطرح می‌گردند كه هر یك ویژگی‌های خاص خود را دارند. در این مقاله قصد داریم به معرفی فناوری مرتبط با Thin Clientها بپردازیم.
    شبكه مبتنی بر Thin Client، شبكه‌ای مبتنی بر سرور است كه تقریباً كلیه پردازش ها در آن توسط این سرور صورت می‌پذیرد. كلیه برنامه‌های كاربردی روی سرور اجرا شده و توسط Clientها قابل استفاده هستند. واژه thin در این تكنولوژی، به دلیل حجم پایین پردازشی است كه توسط Clientها صورت می‌پذیرد. در مقابلِ این تكنولوژیFat Clientها مطرح می‌باشند كه كلیه پردازش‌ها را روی Client انجام می‌دهند. به طور كلی ساختار شبكه های مبتنی بر Thin Client از یك سرور با قدرت بالا و تعدادی Client تشكیل شده است كه كارآیی محدودی دارند.




    Thin Client چیزی جز یک کامپیوتر جمع و جور نیست اما این کامپیوتر برای استفاده به صورت یک پایانه‌ی شبکه‌ای طراحی و تنظیم شده است. شکل بالا نمونه‌ای از یک Thin Client ساخت HP را نشان می‌دهد. برای دیدن عکس در ابعاد بزرگتر، روی آن کلیک کنید.

    یك شبكه مبتنی بر Thin Client چگونه فعالیت می‌كند؟
    یك شبكه مبتنی بر این تكنولوژی دارای یك یا چند سرور با ویژگی‌های خاص می‌باشد. سیستم‌‌عامل این سرورها می‌تواند هریك از سیستم عامل‌های موجود (با توجه به برنامه‌های كاربردی موردنظر) نظیر یونیكس، لینوكس،
    (Windows NT Terminal Server Edition (NT TSE ، یا ویندوز باشد. علاوه بر سیستم‌عامل، بر روی هر یك از این سرورها یك نرم افزار كنترلی وجود دارد كه فعالیت‌های Clientها را كنترل می‌نماید. بسیاری از این نرم افزارهای كنترلی به صورت رایگان عرضه می‌شوند و معمولا‌ً توسط شركت‌های نرم‌افزاری، تولید می‌گردند.

    كاربردها
    این شبكه‌ها در بسیاری از سازمان‌ها مورد استفاده قرار می گیرند. اما بزرگترین مشتریان این شبكه‌ها، بانك‌ها، آژانس‌های هوایی و سازمان‌هایی هستند كه دارای شعبات متعدد می‌باشند. امروزه از این تجهیزات برای تجهیز مدارس نیز استفاده می‌شود. با توجه به این نكته كه سیستم‌های Thin Client دارای هارددیسك نمی‌باشند و امكان download كردن نرم‌افزار نیز روی آن‌ها وجود ندارد، هیچ نوع ویروسی نمی تواند سیستم را مورد حمله قرار دهد. به این ترتیب امنیت این نوع سیستم ها تضمین شده می‌باشد. ارتقاء و نگهداری Thin Clientها بسیار ساده و مقرون به صرفه است. زیرا برای ارتقاء شبكه لازم است فقط سرور مربوطه را upgrade نمود.



    مزایا و معایب
    مدیریت‌پذیری، هزینه‌ پایین، امكان كنترل ونظارت و مواردی از این دست از جمله مزایای این‌گونه از شبكه‌ها می‌باشند كه در ادامه به آن‌ها اشاره خواهیم كرد.

    مدیریت پذیری
    در این شبكه فقط كافی است سرور مدیریت گردد. جهت رفع نقایص احتمالی نیز سرور اصلی مد نظر می باشد.

    امنیت
    در سیستم‌های Thin Client به علت عدم وجود نقطه ورود به شبكه، عدم امكان download كردن نرم‌افزار از اینترنت و نصب آن بر روی Clientها و همچنین عدم وجود هارددیسك، ویروسی شدن سیستم‌ها غیرممكن است. همچنین با استفاده از امكانات سیستم مدیریتی و كنترلی موجود بر روی سرورها می‌توان دسترسی كاربران را نیز به نحو مطلوب محدود نمود.

    كنترل و نظارت
    كاربران شبكه‌های Thin Client نمی‌توانند applicationهای خود را بر روی Client نصب نمایند همچنین قادر به تغییر پیكربندی سیستم نیز نمی‌باشند.

    هزینه سخت افزار
    این تجهیزات از PCها به مراتب ارزان‌تر می‌باشند. به علاوه به دلیل عدم وجود قطعات جانبی، كمتر دچار خرابی می شوند. نكته قابل ذكر در این در نتیجه هزینه نگهداری این تجهیزات نیز كمتر است.

    سهولت ارتقاء
    برای اضافه كردن ترمینال‌های جدید به شبكه، فقط كافی است از طریق نرم افزار مركزی كه روی سرور نصب شده نرم افزار كنترلی را روی Client جدید نصب نمود. در صورت خرابی نیز می‌توان به راحتی ترمینال مورد نظر را از شبكه خارج نمود.

    ذخیره انرژی
    در مقایسه با كامپیوترهای شخصی، این سیستم‌ها انرژی كمتری مصرف می نمایند. در این سیستم‌ها به علت پردازش پایین، توان مصرفی آنها در حدود ده الی بیست وات در ساعت می‌باشد. در حالی كه توان مصرفی یك كامپیوتر از نوع PC در حدود 250 وات در ساعت می باشد.
    اما معایب استفاده از این كلا‌ینت‌ها را می‌توان این‌گونه برشمرد:

    عدم انعطاف پذیری
    در صورتی كه نرم افزاری بر روی سرور نصب نشده باشد، كاربران نمی توانند از آن استفاده نمایند.

    وابستگی به سرور
    با توجه به ساختار Thin Client، لازم است سرور از امنیت بالایی برخوردار باشد. زیرا در صورت از كار افتادن سرور، شبكه به طور كامل مختل خواهد شد. در نتیجه برای جلوگیری از این امر، روش‌های مختلفی جهت ایجاد redundancy نرم افزاری و سخت‌افزاری استفاده می شود. مكانیزم‌های متفاوت Failover نیز برای پردازنده‌ها و پایگاه داده مورد استفاده قرار می‌گیرد. امكان Load balancing سخت‌افزاری و نرم‌افزاری نیز برای این سرورها از موارد ضروری می باشد كه همه این‌ها قیمت سرور موردنظر را به شدت بالا‌ می‌برد.

    پهنای باند
    مانند سایر شبكه های كامپیوتری، پهنای باند این شبكه نیز وابسته به تعداد Clientها می باشد. با توجه به انجام كلیه فرآیندهای پردازشی توسط سرور، ترافیك این شبكه بسیار بالا است. زیرا كلیه دستورات پردازشی باید به سرور منتقل شده و نتایج به Clientها تحویل گردند.

    كمبود فضای حافظه
    با توجه به ساختار این سیستم ها امكان استفاده از هیچ نوع حافظه جانبی نظیر انواع دیسك ها وجود ندارد.

    استفاده از تجهیزات جانبی
    در این نوع شبكه‌ها تجهیزات جانبی محدود می‌باشند. تجهیزاتی نظیر دوربین‌های دیجیتال یا تجهیزات تصویری را نمی‌توان به این ترمینال‌ها متصل نمود. اما در حال حاضر انواعی از ترمینال‌ها وجود دارند كه پورت های مختلفی را پشتیبانی می‌كنند.

    امكانات ضعیف پشتیبانی از مالتی مدیا
    برنامه‌های كاربردی كه نیاز به پردازش‌های تصویری زیاد دارند، روی این شبكه‌ها به خوبی كار نمی‌كنند. زیرا كلیه فرآیندهای پردازشی توسط سرور مركزی صورت می گیرد كه در صورت تخصیص پردازنده به applicationهای مالتی مدیا، كارآیی شبكه به شدت كاهش می یابد. پیشرفت هایی كه در زمینه تكنولوژی های پردازنده ها و سرورها صورت پذیرفته است، تا حدودی این قبیل مشكلات را كاهش داده است. اما هنوز هم عدم پشتیبانی از این چنین كاربردهایی از نقاط ضعف Thin Clientها محسوب می گردد.

    انواع Thin Client
    همان‌گونه كه اشاره شد این سیستم ها نیز انواع مختلفی دارند كه با توجه به میزان پردازشی كه توسط Clientها و سرور صورت می گیرد از یكدیگر متمایز می‌گردند. در ادامه تعدادی از انواع این‌ سیستم ها معرفی می گردند.

    Ultra thin client
    در این سیستم كاربر یك صفحه كلید، ماوس و مانیتور دارد. كلیه پردازشی كه توسط Clientها در این سیستم انجام می شود پردازش ورودی صفحه كلید، ماوس و خروجی روی مانیتور می‌باشد و سایر پردازش‌ها توسط سرور انجام می‌شود. ترمینال‌های ویژه‌ای از این نوع، امكان پردازش كارت‌های هوشمند را نیز دارند.

    (Windows Based Terminal (WBT
    این ترمینال‌ها خود بر دو نوع هستند:
    1- ترمینال‌های استانداردی كه از پروتكل‌های (RDP (Remote Desktop Protocol مایكروسافت یا Citrix ICA (Independent Computing Architecture) استفاده می نمایند.

    2- ترمینال‌هایی كه از سیستم عامل‌های نوشته شده توسط یك سازنده خاص (برای Clientهای خاص) استفاده می نمایند. البته ا‌ین سیستم‌ها از پروتكل‌های استاندارد نیز پشتیبانی می‌نمایند.
    عمده ترین شركت هایی كه این نوع ترمینال‌ها را تولید می كنند عبارتند از: NCD ،Wyse ،Neoware و Compaq
    در رابطه با این نوع ترمینال‌ها نكته قابل ذكر این است كه مجموعه‌ای ازPC ‌ها نیز وجود دارند كه با محدود كردن عملكردشان می‌توان از آن‌ها در شبكه‌های Thin Client استفاده نمود. از این PCها برای مواردی كه كاربردهای چندرسانه‌ای در شبكه‌ها وجود دارد استفاده می شود. مثلا‌ً به این ترتیب پردازش‌های تصویری و صوتی توسط خود Client انجام می شود.

    Internet terminal
    این ترمینال‌ها مرورگرهای اینترنت را به طور توكار ضمنی همراه دارند.

    Low spec PC solution
    به علت عدم نیاز به پردازش توسط Clientها می‌توان از PCهایی كه از رده خارج شده‌اند نیز برای ایجاد شبكه‌هایThin Client استفاده نمود. از این راه‌حل بیشتر در مدارس استفاده می شود.

    Tubby client
    این نوع Clientها در حقیقت PCهایی می‌باشند كه خود دارای سیستم عامل و applicationهایی مستقل هستند این PCها با استفاده از یك نرم افزار امكان اتصال به شبكه Thin Client را نیز دارند. به ترتیب می‌توانند از application ‌هایی كه روی سرور موجود می‌باشند نیز استفاده نمایند.

    Disabled PC solution
    در این نوع از ترمینال‌ها، از امكانات موجود در PCها نظیر Floppy disk و CD استفاده نمی‌شود. و به اصطلا‌ح آن‌هاDisable می‌شوند. البته این روش برای مدت زمان طولانی روش مناسبی محسوب نمی شود. در صورتی كه از این شبكه در كنار یك شبكه استاندارد استفاده شود، راه‌حل بهینه‌ای است.

    Blade PC architecture
    از این ساختار برای Clustering یا خوشه‌بندی استفاده می‌شود. در ساختار Blade PC از PCها به عنوان سرور استفاده می شود. این سرورها در یك محل به صورت متمركز گرد‌آوری شده و یك سرور مدیریت، كلیه PCها را كنترل می نماید و ترافیك را میان آن‌ها تقسیم می‌نماید. كلیه اجزای جانبی نظیر صفحه كلید، ماوس و مانیتور كاربران از طریق یك ارتباط استاندارد (به طور مثال 5-Cat) به PCها متصل می‌شود. البته ا‌ین راه حل بسیار گران بوده و در عین حال ساختار مدیریتی پیچیده‌ای نیز دارد.

    پروتكل‌های ارتباطی
    همان گونه كه ذكر شد، دو پروتكل مطرح در این زمینه وجود دارند.
    پروتكل Citrix ICA: پروتكلی است محصول شركت Citrix كه به Clientها این امكان را می‌دهد تا با سرور مركزی ارتباط برقرار نمایند. با استفاده از این پروتكل بسیاری از applicationهای تحت ویندوز قابل اجرا هستند.
    پروتكل RDP: این پروتكل كه توسط شركت مایكروسافت توسعه داده شده، نیز یك پروتكل ارتباطی است كه امكان برقراری ارتباط میان سرور و Clientها را میسر می سازد.



    نتیجه‌گیری
    در این نوشتار با نوع دیگری از شبكه سازی مبتنی‌بر فناوری Thin Clientها آشنا شدید. شبكه‌هایی كه تمركز اصلی آن بر روی سرور بوده و كلا‌ینت‌ها با حداقل توان پردازشی در اختیار كاربران قرار می‌گیرند. كاربر عمده این قبیل شبكه‌ها، با توجه به معایب و مزایای گفته شده، مكان‌هایی نظیر آژانس‌های هواپیمایی، بانك‌ها و مراكز آموزشی می‌باشند.

    منبع :

    http://forum.p30world.com/archive/index.php/t-87726.html

     

     |+| نوشته شده در  چهارشنبه بیست و چهارم بهمن 1386ساعت 6:2 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام
    فارغ از هياهو - گفت‌‌وگوي بيل گيتس با هفته‌نامه InformationWeek
     
     

     
    ماهنامه شبکه - شماره 61

    اشاره :

    گفت‌‌وگوي بيل گيتس با هفته‌نامه اينفورميشن ويك درباره ابركامپيوترها، مركز پژوهش‌هاي ماي روز پانزدهم نوامبر، بيل گيتس در كنفرانس Super Computing 2005) SC05 ) درباره سوپركامپيوترها سخنراني كرد و به اين ترتيب مايكروسافت براي اولين بار در تاريخ اين شركت رسما وارد حوزه ابركامپيوتر‌ها شد. آرون ريكادلا، از اعضاي اصلي تحريريه نشريه Information Week پس از سخنراني بيل گيتس با او گفتگو كرده‌است. اين گفتگو درباره فضاي جديد همكاري ميان واحد تحقيقات مايكروسافت و دانشمندان علوم مختلف، گسترش فعاليت‌هاي مايكروسافت به عرصه سوپركامپيوترها و احتمال جان گرفتن سطح تازه‌اي از علوم كامپيوتري دور مي‌زند. خواندن اين گفتگو مي‌تواند از چند جنبه جالب باشد. درحالي كه نام مايكروسافت همواره با جنجال و سروصدا درباره چالش‌هايي با سوني، گوگل، لينوكس و ديگر رقبا همراه است، اين گفتگو مانند زنگ تفريحي است كه خواننده را دمي از اين فضا دور مي‌كند و دريچه ذهن او را به سوي موضوعات تازه‌اي مي‌گشايد كه در محافل عمومي كمتر درباره آن‌ها سخني به ميان آمده است. موضوعاتي كه حتي براي خود مايكروسافت هم تازگي دارد. آيا مايكروسافت مي‌خواهد براي ما دارو هم بسازد؟! آيا بيل گيتس اخترشناس هم شده‌است؟! و آيا ...؟ وقتي از دور درباره طرح‌هاي تازه مايكروسافت مي‌شنويم، ممكن است از خود بپرسيم در شرايطي كه مايكروسافت دشمن كم ندارد و در حوزه‌هاي گوناگون و حتي متناقض، از بازي‌هاي كامپيوتري گرفته تا پلتفرم دات‌نت، پورتالMSN ، ماجراجويي در عرصه VoIP و انواع ويندوز مشغول فعاليت است، اين شركت در عرصه ابررايانه‌ها واقعا دنبال چيست؟ آيا چالش‌هاي جديدتر و دشمنان بيشتري در راهند؟ آيا مايكروسافت مي‌خواهد اين‌بار سوپركامپيوترها را به ميان توده‌هاي مردم ببرد؟ اما وقتي شرح همين طرح‌ها را از زبان بيل گيتس بشنويد، تصوير روشن‌تري از وضعيت پيدا مي‌كنيد. به نظر مي‌رسد در شركت مايكروسافت جريان‌هاي فكري تازه‌اي پديد آمده كه اين شركت را به حضور در عرصه علوم تجربي، علوم كاربردي، مهندسي و پزشكي تشويق مي‌كند. نقش بيل گيتس در اين جريان كم اهميت نيست. ردپاي افكار و عقايد او را مي‌توانيد در ماجراجويي‌هاي جديد واحد تحقيق و توسعه مايكروسافت ببينيد. او و شركتي كه بنا نهاده‌است معتقدند ساير علوم بشري بدون كمك ابزارهاي كامپيوتر كه گيتس در اين مصاحبه درباره آن‌ها صحبت مي‌كند، در حال درجا زدن هستند و يا حداكثر پيشرفت كندي خواهند داشت. گويا طاقت بيل گيتس از بابت كم تحركي دانشوران ساير علوم در زمينه بهره‌گيري از توانايي كامپيوترتمام شده است و حالا خودش آستين بالا زده تا وارد گود شود. به راستي پژوهشگران اين شركت چه فكري در سر دارند؟ با هم اين گفتگوي جالب را مي‌خوانيم.


    ريكادلا: اخيرا آقاي Craig Mundie مدير فناوري (CTO) در مايكروسافت مقاله‌اي منتشر كرده كه طي آن درباره تغيير نقش و فعاليت واحد تحقيقات شركت (Microsoft Research) و واردشدن آن به حوزه‌هايي سخن گفته كه از لحاظ تاريخي هيچ‌گاه در زمره فعاليت‌هاي آن نبوده ‌است؛ يعني عرصه‌هايي بيرون از علم كامپيوتر. به نظر شما فناوري‌هايي‌كه واحد تحقيق و توسعه مايكروسافت ابداع كرده چگونه مي‌توانند در حوزه‌هاي وسيع‌تري از علوم مختلف، نظير پزشكي و مهندسي كاربرد داشته باشند؟

    گيتس: واحد تحقيق و توسعه مايكروسافت هميشه طيف وسيعي از فعاليت‌ها را دنبال مي‌كند. ما اين بخش از شركت را با سرعتي بيشتر از ميانگين سرعت رشد كل شركت توسعه مي‌دهيم. زيرا تا به‌حال نتايج خوبي از اين روش گرفته‌ايم. اين رويه هم واحدهاي تحقيق و توسعه فعلي ما و هم واحد چهارمي كه به تازگي در هند تاسيس كرده‌ايم را دربرمي‌گيرد. بعضي از كساني كه به اين واحد آمده‌اند مثل اريك هورويتز (Eric Horvitz) و ديويد هكرمن
    (David Heckerman) مدرك فوق ليسانس دارند و متخصص آموزش به ماشين هستند. يك تكنيك آماري به نام  روش بزيه وجود دارد كه هورويتز و هكرمن از ماهرترين متخصصان آن هستند.
     
    وقتي كه اين دو كارشناس به شركت ما آمدند، علاقمند بوديم ببينيم با به‌كارگيري روش آموزش به ماشين، داروها چه تغييري مي‌كنند، سبك زندگي چگونه مي‌شود و مقولات ديگري از اين دست. آن‌ها حتي اين تكنيك‌ها را روي روش‌هاي داده‌كاوي (Data Mining) كه در تجزيه و تحليل داده‌هاي تجارت كاربرد دارد، اعمال مي‌كنند. طوري كه شما مثلا مي‌توانيد بپرسيد "بسيار خوب، به اين ترتيب سودآورترين مشتريان من كدامند؟" يا  بپرسيد: " كدام‌يك از تكنيك‌هاي تبليغ و بازاريابي بهتر جواب مي‌دهند؟"
     
    آن‌ها از تكنيك‌هاي آماري جالب خود استفاده مي‌كنند تا رد كليك‌هاي مردم روي صفحات وب را بگيرند و به شما بگويند چگونه بايد صفحات وب خود را طراحي كنيد تا كارآمدتر باشند يا موتورهاي جستجو چگونه كار مي‌كنند. همين قضيه‌ جستجو مثال بسيار جالبي است كه ما قبلا در اين زمينه به يك شركت ديگر، يعني Inktomi كه ياهو آن را خريد، وابسته بوديم. سپس تصميم‌ گرفتيم سيستم جستجوي خود را با تكيه بر تلاش‌هاي خودمان از بيخ و بن بسازيم. اكنون، ظرف مدت كوتاهي توانسته‌ايم به جايي برسيم كه ميزان مرتبط‌بودن نتايج جستجوها (با خواست كاربر) از گوگل هم بهتر باشد. نقش واحد تحقيق و توسعه مايكروسافت تا اين حد فوق‌العاده بوده است.

      آيا قرار است دانش واحد تحقيقات شما در عرصه‌هاي علمي خارج از حوزه كامپيوتر به كار گرفته‌شوند؟

    بله. اما توجه كنيد كه موضوع به اين‌صورت نيست كه بگوييم: " بسيار خوب برويم روي موضوعات ديگر (غير كامپيوتري) كار كنيم".  بلكه در اينجا به يك نرم‌افزار نياز است. بنابراين همه اين الگوريتم‌هاي ژنتيكي كه در پروژه‌هاي ما مي‌بينيد، مانند آنچه كه در پروژه ساخت واكسن ضد ايدز مشغول كار روي آن هستيم، نرم‌افزارها و تكنيك‌هاي نرم‌افزاري خاصي هستند كه ما ابداع‌ كرده‌ايم. موضوع اين‌است كه ما حوزه‌هاي مختلفي را در علوم مي‌بينيم كه در آن‌ها به‌قدري حجم داده‌ها بالاست كه بدون بهره گيري از توانايي‌هايي كه ما در زمينه داده‌كاوي و مديريت چرخه عمليات (workflow) و تصويرسازي (visualizing) داريم، قادر به جلو رفتن و پيشرفت ‌كردن نيستند.

    مثلا Sky Server يك نمونه از همين دست است. از لحاظ تاريخي، هميشه در علم اختر‌شناسي كارشناسان اين رشته مايل بوده‌اند كه وقتي يك شب اتفاق جالبي در آسمان مي‌افتد، اين شانس را داشته باشند كه آن رويداد را به هنگام شب ببينند و رصد كنند و بعد مثلا مقاله‌اي درباره كوازارها بنويسند. امروزه هزاران مكان در سراسر كره زمين براي رصد‌كردن ستارگان وجود دارند كه با طول موج‌هاي مختلفي كار مي‌كنند و وضوح و دقت متفاوتي دارند. همچنين تعدادي ماهواره در آسمان وجود دارد. البته در واقع چيزهاي زيادي در آسمان هست و اگر شما به عنوان يك اخترشناس بخواهيد بگوييد "خوشه‌هاي‌ كهكشان‌ها مانند اين‌ها هستند و يا فلان منابع نوري اين‌گونه كار مي‌كنند" به منظور آزمايش كردن اين فرضيه‌ها هزاران بانك اطلاعاتي با فرمت‌هاي مختلف در سراسر دنيا وجود دارد كه شما مجبوريد اطلاعاتشان را بيرون بكشيد و ببينيد آيا با فرضيه شما مطابقت مي‌كنند يا نه.

    آنچه كه جيم گري (Jim Gray) پژوهشگر مايكروسافت انجام‌داده ‌اين‌است كه چند ستاره‌شناس را دور هم جمع كرده است تا ببيند چگونه مي‌توان از فناوري Web Services براي متصل‌كردن اين بانك‌هاي اطلاعاتي ناهمگن در اينترنت استفاده كرد. اين همان چيزي است كه ما Sky Server ناميده‌ايم. به اين ترتيب به صورت مجازي فقط يك بانك اطلاعاتي وجود خواهد داشت. اين هرگز به معني اين نيست كه همه داده‌ها در يك مكان كپي شوند، بلكه شما مي‌توانيد به صورت متمركز جستجو كنيد و نرم‌افزار با جستجو در همه بانك‌هاي اطلاعاتي سراسر دنيا (كه به اين سيستم فرضي متصل هستند) نتيجه مناسب را برايتان برگرداند.

    اين كار مي‌تواند موفقيت جالبي باشد. كل اين پروژه بر اساس ديدگاه جيم پايه‌گذاري شده كه معتقد است داده‌هاي بسياري زيادي در علوم مختلف گردآوري شده‌اند كه بدون يك مديريت نرم‌افزاري مناسب، مثل آن‌چه كه ما داريم، رها شده‌اند. ما اين نرم‌افزارها را در محصولات و تحقيقاتمان داريم كه پژوهشگران ساير علوم بدون بهره‌گيري از اين ابزارها نخواهند توانست پيشرفت‌هاي سريعي داشته باشند.

    همين علم زيست‌شناسي را ببينيد. هيچ مثالي واقعي‌تر از زيست‌شناسي و علوم زيستي نيست؛ جايي كه شما فقط داريد حجم انبوهي از اطلاعات را جمع‌آوري مي‌كنيد. توانايي پيوند‌دادن اين منابع و داده‌هاي انبوه با استفاده از فناوري درخشان  وب‌سرويس‌ها و روش‌هاي خيلي خوبي كه ما در زمينه مجسم‌سازي و ترسيم آمار و اطلاعات و نمودار بلديم، فكر هيجان‌انگيزي است.

    بنابراين مي‌بينيد كه چنين نبوده كه ما يك روز صبح از خواب بلند شويم و بگوييم " حالا‌ بذار بريم سراغ يه مسئله غير‌كامپيوتري" اين قضيه درست مثل اين‌است كه شما ببينيد گروهي از مهندسان مشغول استفاده از رياضيات هستند و بعد برويد پيش رياضيدان‌ها و به آن‌ها بگوييد "شما كي تصميم گرفتيد به اين مهندس‌ها كمك كنيد؟" و آن‌ها در جواب بگويند "نه، ما كمك نكرديم. مهندس‌ها خودشان متوجه شده‌اند تنها راهي كه مي‌توانند از طريق آن، ايده‌هايي مانند مقاومت مصالح يا شكست نور و بسياري از پديد‌ه‌هاي پيچيده ديگر را توصيف كنند، استفاده از رياضيات پيشرفته است". اما اكنون ديگر تنها رياضيات كافي نيست، بلكه براي اين‌كه بتوانيد با اين‌همه داده كار كنيد، به نرم‌افزار هم نياز داريد.

    شما به اين دانشمندان نگاه ‌كنيد كه چگونه در كار نوشتن برنامه‌هاي نرم‌افزاري در سطح زبان ماشين گيركرده‌اند، چگونه داده‌ها را دستي منتقل مي‌كنند و چگونه آن‌ها را مجددا وارد مي‌كنند. آنچه كه من در سخنراني‌ خود گفتم يك ترسيم خوشبينانه از آينده بود. اگر من وقت بيشتري در آن جلسه داشتم و اگر كسي تمايل داشت، مثال‌هايي نشان مي‌دادم تا ببينيد چقدر جاي تاسف است كه امروزه دانشمندان ما همه اين اطلاعات را دارند، ولي نمي‌توانند آن‌ها را يكپارچه كنند و بينش و بصيرتي را كه انتظار مي‌رود از آن حاصل كنند. آن‌ها وقت زيادي را صرف مي‌كنند، نه براي اين‌كه عميقا در انديشه علمي غرق شوند، بلكه براي اين‌كه داده‌ها را دوباره وارد‌كنند و كد‌نويسي و برنامه‌نويسي كنند؛ كاري كه نبايد انجام دهند!

    البته وقتي ما مي‌گوييم "دانش"، به كساني هم كه اتومبيل طراحي مي‌كنند فكر كنيد، به كساني كه هواپيما مي‌سازند نيز فكر كنيد. به كساني بينديشيد كه در انديشه طراحي يك سايت هستند و... دانش فقط علوم پزشكي نيست؛ هرچند كه همين يك مقوله خودش براي اثبات بحث ما كافي است. دانش فقط علوم محيط زيست نيست، هرچند كه همين يك رشته به‌قدري مهم است كه ما حتما بايد كاري براي آن انجام دهيم. نرم‌افزارهاي  پيشرفته كامپيوتري هم نقشي كليدي در اين زمينه ايفا مي‌كنند. اين، نوعي ديجيتالي‌كردن همه‌چيز در دنياي اطراف ما است؛ يعني روشي كه براي همه علوم تجربي، مهندسي، كسب‌ وكار و بازرگاني كارايي دارد.

    آيا از نظر درگيركردن اين پژوهشگران (در واحد تحقيقات) با دنياي خارج از مايكروسافت فعاليت رسمي‌تري هم وجود دارد؟ منظورم اين‌است كه گويا بخش عمده‌اي از كار جيم‌گري متكي به ابتكار شخصي خود اوست. آيا اين وضعيت عموميت دارد؟ يا روشي براي رسميت بخشيدن به اين فعاليت‌ها داريد؟


    خوب، اين موضوع را از دو منظر مي‌توان نگريست. كاري كه واحد تحقيقات مايكروسافت در انجام‌دادن آن فوق‌العاده موفق بوده‌است، برقراري ارتباطات بسيار خوب با بهترين دپارتمان‌هاي مربوط به دانش كامپيوتر در سراسر دنيا است. اگر شما به دانشگاه‌ها، سازمان‌ها و نهادهاي دانشگاهي مربوط به كامپيوتر در سراسر دنيا سري بزنيد و به آن‌ها بگوييد: فهرستي از شركت‌هايي كه با آن‌ها همكاري داريد را بياوريد، اغلب آن‌ها مايكروسافت را نام خواهند برد و برايتان از وسعت فعاليت‌هايي كه باهم انجام مي‌دهيم، خواهند گفت.

    وقتي ما نشست‌هاي دانشگاهيمان را برگزار مي‌نماييم، برخي از اين افراد را دعوت مي‌كنيم. هريك از اين دپارتمان‌ها در زمينه‌هاي علمي مختلفي فعاليت مي‌كنند. اين موضوع بسيار مهمي است.

    در MIT آن‌ها واقعا روي علوم مربوط به زندگي كار مي‌كنند و بعضي از گروه‌هاي ديگرشان كارهاي مفصلي در زمينه روباتيك انجام مي‌دهند. دشوار است كه بخواهيم بگوييم همه اين‌ها را مي‌توان در قالب علم كامپيوتر يا زمينه‌هاي علمي مختلف درنظرگرفت. فكر مي‌كنم بالتر لمپسون (Bulter Lampson)، يكي از محققان واحد تحقيقات مايكروسافت بود كه چهار سال پيش به استعاره گفت: يكي از اهداف اين واحد بايد  اين باشد كه ديگر هيچ‌كس در داخل يك اتومبيل تصادف كرده، فوت نكند.

    هركس اين را بشنود فورا مي‌گويد: اوه! مگه اين اختراع چيه؟ مگر اين چيزي غير از يك نرم‌افزار خوب، يك نرم‌افزار تصويربرداري، يك نرم‌افزار تجزيه‌ و تحليل داده‌ها و يك سنسور مي‌تواند باشد؟ اين هدف بسيار ارزشمندي است. زيرا نرم‌افزار بايد قادر باشد به چنين هدفي دست پيداكند. سنسورها به تدريج خيلي خيلي ارزان خواهند شد و مزاياي اين امر مي‌تواند فوق العاده و هيجان انگيز باشد.

    بنابراين ما اغلب اوقات اهدافي را انتخاب مي‌كنيم كه در نگاه اول ديوانه‌وار به نظر مي‌رسند. همه چالش‌هايي كه در زمينه روباتيك مي‌بينيد، شما را نهايتا به سمت تصوير‌سازي، مدل‌سازي و آموزش به ماشين هدايت مي‌كنند. از طريق همين روابط دانشگاهي است كه ما به يك نهاد آكادميك مي‌گوييم "مشكل شما چيست؟ نرم‌افزار چگونه مي‌تواند مشكل شما را حل كند؟" در اين مرحله ما پژوهشگراني داريم كه هريك روي زمينه‌هاي علمي مختلفي كار مي‌كنند. مثلا بچه‌هايي كه در آزمايشگاه كمبريج انگلستان كار مي‌كنند، يكي از همين‌ها هستند. اما دوباره همه‌چيز به نرم‌افزار ختم مي‌شود و راه‌حل‌هايي كه از اين نرم‌افزارها بيرون مي‌آيند، چيزهاي باارزشي هستند.


    اگر شما به عنوان مثال اين امكان را در اختيار افراد قرارمي‌دهيد كه بيايند يك كار(شغل) را روي اينترنت ارسال‌كنند و پس از جستجو، ارزان‌ترين مكان جغرافيايي و داوطلب را براي انجام آن بيابند، اين فرايند از نظر كسب‌وكار جالب است. بگذاريد به‌اين‌صورت مثال بزنم كه به عنوان فردي كه كارم تجارت است، اتفاقا بايد يك تحليلگر قوي پيش خودم داشته باشم كه به‌ندرت دارم. شايد من الان در حال خارج كردن كسب‌وكارم از يك وضعيت بحراني باشم. پس به همين دليل مي‌كوشم كارهايي را به بيرون از مجموعه خودم واگذاركنم، كه در حالت عادي خودمان انجام مي‌دهيم. چگونه بايد اين موقعيت‌هاي تصميم‌گيري را تشخيص داد؟ درواقع تكنيك‌هاي توصيف منابع و امكان‌پذير كردن تجسم اطلاعات و تصويرسازي از روي آن‌ها دستاوردهايي هستند كه ما در دنياي واقعي كسب‌وكار بهره‌هاي زيادي از آن‌ها مي‌بريم.

      هم‌اكنون بخشي از نيروي انساني كه در واحد تحقيقات استخدام مي‌كنيد از رشته‌هاي غيركامپيوتري و نامرتبط با مهندسي كامپيوتر است. نظر شما دراين باره چيست؟

    به نظر من نگاه شما دراين باره صرفا مبتني بر آمار است. چون در اغلب اوقات افرادي كه انديشه‌هاي درخشاني دارند، داراي مطالعات و علاقمندي‌هايي در چند حوزه مختلف هستند. در واحد تحقيقاتي مايكروسافت اغلب پژوهشگران اين‌گونه هستند. خود من هرگز سر يك كلاس درس كامپيوتر در دانشگاه هاروارد نرفته‌ام؛ كلاسي كه اكثر دانشجوها در آن حاضر مي‌شوند. چون من قبل از اين‌كه سر چنين كلاسي بروم، با كامپيوترها در تماس بوده‌ام. توگويي من سال‌ها قبل، اين درس‌ها را گذرانده بودم. بنابراين من مي‌رفتم درس‌هايي مانند روان‌شناسي فيزيولوژيك و اقتصاد مي‌گرفتم.
     
    البته من هرگز مدرك آكادميك نگرفتم. اما اگر نگاهي به اسامي درس‌هايي كه مي‌گرفتم بيندازيد، اصلا فكر نمي‌كنيد من يك آدم نرم‌افزاري بوده‌ام. در واحد تحقيقات هم افراد خوش فكر زيادي را پيدا مي‌كنيد كه دوست دارند به اين حوزه‌هاي متفاوت سرك بكشند. مثلا ناتان مايرولد (Nathan Myhrvold) كه گروه تحقيقاتي ما را بنيان گذاشته است، بيشتر يك فيزيكدان است. اما او در نرم‌افزار نيز آدم درخشاني است. ضمن‌آن‌كه اكنون يك حقوقدان متخصص در زمينه ثبت اختراعات است. بنابراين مي‌بينيد كه داراي چند علاقه متفاوت است.

    ما ده‌ها نفر مانند هكرمن و هورويتز استخدام مي‌كنيم. در واقع، ما هميشه دنبال آدم‌هايي هستيم كه عاشق نرم‌افزار هستند. اما مي‌دانند كه چگونه بايد آن را در شاخه‌هاي مختلف علوم به‌كار بگيرند. در مرحله استخدام و مصاحبه يكي از جالب‌ترين روش‌ها اين است كه به جاي اين‌كه سوالات خيلي خاصي از آن‌ها بكنيد، درباره آن‌دسته از مسائلي كه كاركردن روي آن طرف را به شوق مي‌آورد بپرسيد تا عمق درك و بينش او را درباره جاهايي كه سركشي كرده‌است دريابيد. به اين ترتيب شما به حوزه‌هايي مي‌رويد كه آن‌ها خيلي خود را در آن زمينه‌ها غرق كرده‌اند، كه  ممكن است يك مسئله كامپيوتري عمده باشد و يا مسائلي در حوزه‌هاي ديگر علوم كه آن‌ها فكر مي‌كنند نرم‌افزار مي‌تواند درآنجا كاربرد داشته باشد.

    البته هرچه مي‌گذرد، به دليل دسترسي عمومي به كامپيوتر شخصي و دوره‌هاي آموزش كامپيوتر، تعداد بيشتر و بيشتري از كساني كه استخدام مي‌كنيم و به كار برنامه‌نويسي مشغولند، نوعي از مدرك كارشناسي كامپيوتر را دارند. از نظر تاريخي اگر شما به عقب برگرديد متوجه مي‌شويد كه بسياري از مدارس كامپيوتر حتي مدرك كارشناسي كامپيوتر نمي‌دادند. در واقع هنوز در اين زمينه نوعي سردرگمي وجود دارد. يعني دقيقا مشخص نيست كه كامپيوتر را بايد زير مجموعه دپارتمان مهندسي قرار‌داد يا دپارتمان رياضيات. جاي اين رشته دقيقا كجاست؟ شايد من بايد از جيم گري مي‌پرسيدم. اما آيا او تاكنون يك دوره ستاره‌شناسي گذرانده‌است؟ يا حتي مطالعه يك كتاب در اين زمينه را شروع كرده است؟ من هيچ‌وقت به او به عنوان يك ستاره‌شناس نگاه نكرده‌ام. او را بيشتر يك آدم فوق‌العاده در زمينه بانك اطلاعاتي مي‌شناسم. اما آدم‌هايي كه توانايي‌هاي فوق‌العاده دارند، معمولا اين‌گونه هستند.

    اگر اجازه بدهيد، كمي از اين بحث دور شويم و درباره جهت‌گيري‌هاي آينده صنعت كامپيوتر صحبت كنيم. تا چه اندازه مقوله‌ سوپركامپيوترها و پردازش‌هاي كامپيوتري سريع (High Performance Computing) و توسعه سيستم‌هاي مبتني بر آن در بازار كامپيوتر نقش ايفا مي‌كند و شما اهميت اين حوزه را در قياس با صنعتي كه در آن به‌كارگيري چندين هسته در يك تراشه به جريان اصلي و محوري تبديل مي‌شود، چگونه ارزيابي مي‌كنيد؟

    اين دو جريان واقعا به سمت يكديگر حركت مي‌كنند.

    هم‌‌اكنون توانايي به‌كارگيري تعداد زيادي كامپيوتر در سطوح مختلف وجود دارد. داخل خود ريزپردازنده، ما درحال حركت به سمت بيشتر شدن تعداد هسته‌ها هستيم. درحال حاضر روي فناوري دو تا چهار هسته كار مي‌شود و حدود هفت سال ديگر ما در مرحله كار روي 16 تا 64 هسته خواهيم بود كه هركدام روي چندين thread  كار  مي‌كنند(1). بنابراين بسياري از اين تكنيك‌ها كه از دنياي سوپركامپيوترها مي‌آيند به كارگرفته خواهند شد؛ به‌ويژه در سرورها. اما در سيستم‌هاي دسكتاپ نيز عموميت خواهند يافت. ما خودمان به اين دليل سراغ جنبه‌هاي فني پردازش‌هاي كامپيوتري رفته‌ايم كه از نظر فرصت‌هايي كه در حوزه نرم‌افزار پيش پايمان مي‌گذارد، حوزه بزرگي است.

    كار در اين حوزه براي ما خيلي هيجان‌انگيز است، به خاطر اين‌كه بسياري از مشكلاتي كه حول و حوش مديريت خودكار و توسعه نرم‌افزاري وجود دارد، مي‌تواند به سادگي از طريق اين فناوري حل شود. اما در عين حال سرورهاي زيادي در بازار وجود دارند كه به عنوان كلاستر در شبكه‌ها مورداستفاده قرار مي‌گيرند و اين براي ما بازار مناسبي  است.

    فكر مي‌كنيد پردازش چند‌هسته‌اي چه كاربردها يا روش‌هايي را امكان‌پذير مي‌سازد؟ و مايكروسافت موقعيت خود را در اين صنعت نوظهور چگونه تنظيم خواهد كرد؟

    در سمت كلاينت‌ها مطمئنا اين كاربرد متوجه اينترفيس‌هاي طبيعي خواهد بود. منظورم مقولاتي مانند گفتار و تصوير است. اين فناوري همچنين در زمينه موتورهاي جستجوي بسيار پيشرفته كاربرد خواهد داشت. به اين ترتيب كه  كمك مي‌كنند چيزهايي كه بيشتر مورد‌علاقه شماست، بدون تحمل زحمت زياد، راحت‌تر در معرض ديد شما قرارگيرند. اين فناوري در زمينه فيلترسازي اطلاعات نيز كاربرد پيدا‌خواهد كرد. يعني قابليتي كه با استفاده از آن بتوانيد اطلاعات دلخواه خود را از ميان انبوهي از اطلاعات غيرسودمند تفكيك كنيد.

    فناوري پردازش‌هاي سريع در حوزه‌هايي مانند امنيت اطلاعات و بالابردن ميزان قابل‌اعتماد بودن سيستم‌ها نيز نقش مهمي ايفا خواهد كرد. بخش زيادي از محاسبات و پردازش‌هايي كه سيستم‌هاي حفاظت از اطلاعات انجام مي‌دهند، به شدت به توان و سرعت پردازشي كامپيوتر متكي هستند. من مي‌توانم مالتي مديا را نيز به اين فهرست اضافه كنم. كه در آن نياز به پردازش صوت و تصوير با كيفيت بالا وجود دارد. فناوري‌هاي داده‌كاوي
    (Data Mining) را نيز به اين حلقه اضافه كنيد.

    بنابراين ما مي‌توانيم از اين قدرت پردازشي جديد در زمينه‌هاي مختلف استفاده كنيم. اگر امكان بالا‌تربودن سرعت پردازنده وجود داشت، كار ما بسيار ساده‌تر مي‌شد. چون در آن صورت مجبور نبوديد به منظور دستيابي به توان پردازشي بيشتر، نرم‌افزارها را اين‌همه با هم موازي كنيد. يك قانون معروف به نام Amdahl در زمينه سيستم‌هاي موازي وجود دارد كه مي‌گويد حتي اگر ده‌ها پردازنده را با هم موازي كنيد، امكان افزايش سرعت پردازش اطلاعات محدود است(2). واقعا مشكل است كه به‌طور مرتب سيستم‌ها را هرچه بيشتر موازي كنيم.

    افرادي مانند Craig Mundie كه دوازده سال پيش از صنعت سوپركامپيوترها پيش ما آمدند روي چنين مسائلي كار مي‌كنند. از بعضي جنبه‌ها واقعا دشوار است به اين سوال پاسخ دهيم كه آيا مي‌توان ماشيني با قدرت N ساخت كه با استفاده از نرم‌افزاري كه روي ‌N ماشين، هركدام با قدرت 1 واحد  نصب شده، كار كند؟ پاسخ اين است كه به طور كلي خير! اما آيا براي دسته خاصي از مسائل مي‌توان چنين چيزي ساخت؟ اين به كارايي الگوريتم شما برمي‌گردد. ما طي اين سال‌ها مجموعه‌اي از افراد نخبه را گردهم آورده‌ايم كه مدت‌ها دراين باره انديشيده و كار كرده‌اند.

    شما مشخصات آن دسته از تحقيقات را كه امثال Ray Ozzie در زمينه نرم‌افزار Live برايتان انجام‌مي‌دهد، چگونه توصيف مي‌كنيد؟ چگونه اين مسائل به موضوع پردازش موازي ربط پيدا مي‌كند؟

    در واقع ارتباط مستقيمي ميان اين دو نيست. به طور مشخص وقتي شما از كلمه لايو صحبت مي‌كنيد، منظورتان سرويس‌هايي است كه در اينترنت وجود دارد؛ مثل ذخيره كردن فايل‌ها و تهيه نسخه پشتيبان از آن روي اينترنت. بسياري از سرويس‌هايي كه ما روي اينترنت عرضه مي‌كنيم، سرورهايي را به خدمت مي‌گيرند كه از اين تكنيك‌ها استفاده مي‌كنند. شاخه جستجو در شركت يعني (Microsoft Search) از سيستمي استفاده مي‌كند كه ما آن را "ابتكار سيستم‌هاي پويا" ناميده‌ايم و نرم‌افزاري است كه براي مديريت هزاران ماشين طراحي شده‌است.

    ما به ازاي هر هزار سرور در بخش جستجويمان كمتر از يك نفر اپراتور داريم. از آنجايي كه بسياري از اين سيستم‌هاي پشت صحنه‌ ماجراي Live، غول‌پيكرند، فناوري‌هايي نيزوجود دارند كه در اين ميان نقش مهمي در مديريت سيستم‌ها ايفا مي‌كنند. كلمه لايو يك مفهوم كاربرمحور و ناظر به روش‌هاي جديد ارتباطي است. بنابراين كاربر هيچ وقت نخواهد گفت: "واي خدايا! عجب سيستم پردازش موازي‌اي" آن‌ها فقط از مزاياي به‌كارگيري چنين سيستم‌هايي سود خواهند برد. اما در پشت صحنه سيستم‌هايي هستند كه از اين تكنيك‌هاي پيشرفته استفاده مي‌كنند. شما يك پردازنده چند هسته‌اي خواهيد داشت كه لازم نيست به آن فكر كنيد. آن سيستم مسائل را برايتان به قطعات كوچك‌تر خرد مي‌كند.

     درپايان مي‌خواهم سوالي درباره نقش خود شما در صنعت كامپيوتر بپرسم. آيا فكر مي‌كنيد كه روزي خواهد رسيد كه شما همچنان در صنعت كامپيوتر خيلي فعال باشيد، ولي احتمالا از كارهاي اجرايي روزمره شركت دور باشيد؟ ممكن است هنوز كارهايي انجام دهيد كه احتمالا براي شركت مفيد است. اما شايد بتوانيد ميزان بيشتري از وقت خود را در جاي ديگري صرف كنيد.

    خوب، زندگي كاري من مايكروسافت است و من هميشه درگير امور مايكروسافت خواهم بود. امروز من شغل خيلي خوبي دارم كه معماري ارشد نرم‌افزار نام دارد و اين شيوه خيلي خوب جواب مي‌دهد. اين هفته من از يك "هفته فكر" كم كردم  و سركار آمدم. وضعيتي كه به ندرت اتفاق مي‌افتد. من معمولا در "هفته‌هاي فكر" وقفه نمي‌اندازم(3). اما چون به نقطه‌اي رسيده‌ايم كه افراد را درگير كارهاي جديد كرده‌ايم، فرصت خيلي خوبي بود كه نبايد از دست مي‌دادم. من در اولين فرصت دوباره به "هفته فكر" خودم باز خواهم گشت. من بايد درصد زيادي از وقت خود را صرف محصولات و راهبردهاي مرتبط با محصولات كنم؛ كاري كه خيلي آن را دوست ندارم.

    يكي از همين سال‌هايي كه پيش روست كسي اين كرسي مهم را اشغال خواهد كرد. ولي من همچنان درگير امور مايكروسافت خواهم بود و در كارهايش مشاركت خواهم داشت. اين شغل مهمي است و اين شركت است كه عمده وقت من را مي‌گيرد. من فرصت‌هايي را نيز به كارهاي بنياد خيريه‌ام اختصاص مي‌دهم. البته الان به صورت تمام وقت در اختيار مايكروسافت و پاره وقت در اختيار بنياد هستم. شايد در آينده اين وضعيت برعكس شود. ولي قريب‌الوقوع نيست.

    پي‌نوشت:
    1- Thread عبارت است از دستورالعمل‌هايي كه در ريزپردازنده در حال اجرا  هستند و به فرمان يا عمليات مستقلي اختصاص دارند. قابليت اجراي فرامين به صورت Multi-Thread هماني است كه امكان ايزوله‌كردن چند عمليات مجزا و همزمان (Multi-Tasking) را در كامپيوتر فراهم مي‌سازد.


     2- بر اساس قانون Amdahl كه توصيفي رياضي نيز دارد، در پردازش‌هاي موازي، اين الگورتيم محاسباتي است كه تعيين‌كننده سرعت نهايي پردازش است نه تعداد پردازنده‌ها.  بالا‌خره به جايي هم مي‌رسد كه كارايي همين الگوريتم نيز به حداكثر خود مي‌رسد و پس از آن افزايش تعداد پردازنده‌ها هيچ تاثيري در افزايش سرعت پردازش نخواهد داشت.

    3- گيتس در چنين ايامي دست از كار اجرايي مي‌كشد و اوقاتش را فقط به انديشيدن درباره مسائل مختلف اختصاص مي‌دهد.

     

     |+| نوشته شده در  دوشنبه بیست و دوم بهمن 1386ساعت 1:8 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    شروع پردازش موازی

    مقدمه : بیش از صدها سال قبل در تلاش برای رفع نیازهای محاسباتی و عملیاتی خود بوده است .
    در شرایط امروز که متحقیقین و دانشمندان دنیای کامپیوتر توانسته اند صدها و هزاران پردازشگر کوچک و بزرگ را برای رفع نیازهای زمان به صورت قابل توسعه در یکدیگر وصل نمایند که وقتی قادرند میلیاردها عمل ریاضی  در ثانیه انجام دهند ولی هنوز ده ها و صدها نیاز محاسباتی و عملی وجود دارند که سیستم های موجود قادر به حل آن ها نبوده و سیستم های بزرگ تر با قدرت های محاسباتی تریلیونی لازم و ضروری است مسلما ً دستیابی به این سیستم های بزرگ از طریق طراحی و ساخت ابر کامپیوترهای تکی و یا تک پروسسری ممکن و میسر نیست .
    حال سوال اصلی که در اینجا مطرح می باشد این است که چگونه می توان نیازهای محاسباتی جامعه امروزی را برطرف نمود ؟
    جواب این سوال آسان است ، چنانچه امکان  رفع نیاز توسط یک سیستم برطرف نگردد ، مسلما ً تعدادی از آن سیستم ها وقتی سیستم های کوچکتر خواهند توانست نیازهای محاسباتی را برطرف نمایند .
    شروع این نقطه ، شروع پردازش موازی است و این فکر از سال های 1920 به مغز و به فکر متحققین کامپیوتری رسید . تلاش و کوشش متحققین و پژوهشگران کامپیوتر در هفت دهه گذشته موجب تحول و توسعه سیستم های پردازش موازی گردیده و این تحول و توسعه تا آنجا رسیده است که ماشین های امروزی توانسته اند بیش از 65 هزار پروسسور را یکجا در سیستمی به کار گیرند و چندین تریلیون عملیات را در ثانیه انجام دهند .
    امروزه برای تأمین نیازهای محاسباتی و عملیاتی می توان از سه طریق استفاده کرد :

     

    1-سیستم های Pc

    2-سوپر کامپیوتر

    3-سیستم های پردازش موازی

    که تأ مین هزینه های مربوط به هریک در دیاگرام زیر نشان داده شده است :

    هزینه سیستم های پردازش موازی از هر سیستم دیگر کمتر می باشد و  دلیل آن استفاده از واحدهای ارزان و معمولی کامپیوتری است

    1

     

    بررسی رفتار عملکرد سیستم های پردازش موازی :

    ما برای بررسی رفتار عملکرد سیستم پردازش موازی می توانیم پارامترهایی همچون راندمان سیستم (کارایی) ، ضریب بکارگیری ، کیفیت پردازش موازی را تحریف کنیم .

    1-كارايي : در سیستم پردازش موازی با تعداد P پروسسور می توان فرض کرد که تعداد O(P) عملیات در زمان T(P) اجرا می نماید . چنانچه این عملیات در یک سیستم تک پردازنده اجرا گردد زمان لازم برای اجرای آن T(1) ثانیه خواهد بود.اگر بیشتر از یک عملیات به وسیله سیستم پردازش موازی با P پروسسور انجام گردد ، ازدیا سرعت را می توان به صورت زیر تعریف کرد :         

    1

    و در نتیجه راندمان سیستم به صورت زیر تعریف می شود :

    1

    کمترین مقدار E(p) در سیستم موازی زمانی است که تنها یکی از پروسسورها تمام برنامه را به صورت پیاپی اجرا نماید و بزرگترین مقدار آن حالتی است که تمام P پروسسور به طور همزمان در اجرای تمام برنامه با هم همکاری داشته باشند

    2

    ضریب به کارگیری یک سیستم پردازش موازی نشانگر درصدی از واحدهایی همچون حافظه ها و پردازشگرهاست که در زمان اجرای برنامه بکارگرفته میمی

    1

    3) کیفیت پردازش به صورت زیر تعریف می شود:

    1

    طبقه بندی معماری سیستم های کامپیوتری :

    میشل فلین در سال 1996 میلادی معیاری برای طبقه بندی معماری در سیستم های کامپیوتری بر اساس جریان فرامین و

    داده ها و تعداد آن ها ارائه نمود . در این طبقه بندی معماری های مختلف کامپیوتر بر اساس جریان داده ها و فرامین به

    چهار دسته زیر تقسیم شده است :

    1) Single Instruction Stream – single data - SIMD

    ماشین که در طراحی و معماری آن ها فقط یک جریان داده و یک جریان فرامین یا دستورالعمل برقرار است .

    این معماری در تمامی کامپیوترهای ساده و تک پردازنده قدیمی و مدرن بکار رفته است .

    1

    2) Single Instruction Stream – Multiple Data : SIMD

    ماشین هایی که در آن ها یک جریان دستورالعمل و چند جریان   داده برقرار است

    1

    در این ساختار تعداد زیادی واحد عملیاتی که قادر به عملیات ریاضی/منطقی هستند . تحت کنترل وهدایت یک واحد کنترل قراردارند و قادرند داده های متعددی را همزمان از واحدهای حافظه فراخوانی نموده و عملیات یکسانی را در مورد آن ها انجام دهند .

    3) Multiple Instruction Stream – single DATA : MISD

    ماشین هایی که در آن ها چند جریان فرامین به طور همزمان ولی یک جریان داده برقرار است .

    تا به امروز سیستم کامپیوتری مشخص بر اساس این معماری طراحی و ساخته شده است

     

    1

    4)Multiple Instruction Stream - Multiple Data : MIMD

    ماشین هایی هستند که در آن ها چند جریان همزمان دستورالعمل و چند جریان همزمان داده برقرار است .

    1

     نحوه ی اجرا و عملکرد سیستم های پردازش موازی

     Parallel Implementation

    در روش های موازی از مجموعه ای از کامپیوتر ها استفاده می شود که توسط یک شبکه به هم متصل می باشد و تحت PVM  اجرا می شوند

    PVM یک بسته نرم افزاری است که به برنامه نویسی موازی کمک می کند .

    ماشین های موازی تحت PVM یک مجموعه ای از پروسسور ها هستند که هم به حافظه کمکی و هم به حافظه مشترک متصل هستند

    (Parallel virtual Machine ):

    این مجموعه شامل یک پروسسور Master و چند پروسسور Slave می باشد .

    ما می خواهیم دستگاه معادلات خطی را با استفاده از روش مونت کارلو در این سیستم حل کنیم .(با در نظر داشتن P پروسسور)

    ابتدا ماتریس کامل A را به هر ریز پردازنده انتقال می دهیم . در هر ریز پردازنده1

    مولفه از بردار جواب محاسبه می شود و در انتها نتایج از Slave هاهیچ ارتباطی ، بین فرستادن A و دریافت مولفه های x ، جمع آوری می شود .

    تنها ارتباط بین Slave  ها و  Masterدر آغاز و پایان الگوریتم صورت می گیرد که به ما این امکان را می دهد که کارایی خیلی بالایی از اجرای موازی داشته باشیم .

    چون ما در حالت موازی می خواهیم n مولفه از بردار جواب را در P پروسسور محاسبه کنیم نه از زمان اجرای بارگذاری اولیه اطلاعات O(nNT/P) می باشد که تعداد زنجیر مار کف وT  طول زنجیر مار کف است .

    آزمایش ها و تجربیات نشان داده است که زمان محاسبه کل n مولفه یک تابع خطی از اندازه ماتریس یعنی n می باشد .

     

     |+| نوشته شده در  دوشنبه بیست و دوم بهمن 1386ساعت 12:29 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام
    آشنایی با آزمايشگاه پردازش موازي دانشکده ریاضی آمار و علوم کامپیوتر  دانشگاه تهران

    در اين آزمايشگاه 4 كامپيوتر دوال پروسو، دوال كور توسط يك سويچ به يكديگر متصل شده اند و يك كلاستر جهت اجراي برنامه هاي موازي بوجود آورده‏اند. اين كلاستر در حقيقت يك سيستم پردازش موازي با 16 گره را بوجود مي آورد. از اين كامپيوترها يك كامپيوتر سرور كلاستر بوده و داراي سيستم عامل لينوكس و محيط پردازش موازي MPI و PVM مي باشند. اين كلاستر به شبكه محلي پرديس علوم متصل بوده و از طريق آن امكان دسترسي به كلاستر از طريق اينترنت فراهم آمده است. كاربران اين آزمايشگاه را دانشجويان تحصيلات تكميلي و دكتري علوم كامپيوتر تشكيل مي دهند و جهت انجام امور پژوهشي و تست الگوريتهاي موازي از آن استفاده مي كنند.

    استفاده كنندگان از طريق شبكه به سرور متصل مي شوند و مي توانند برنامه هاي موازي خود را در محيط PVM و MPI
     برروي اين 16 كامپيوتر اجرا نمايند.
     
     |+| نوشته شده در  دوشنبه بیست و دوم بهمن 1386ساعت 12:27 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    آی‌بی‌ام  تكنولوژی mainframe را به سرورهای يونيكس اضافه می‌كند

    نويسنده: Patrick Thibodeau
    Computerworld
    مترجم: زهره چكنی

    فرامينگهام- Gorge Martine‌ مسئول ادغام شركت Royal Caribbean Cruises، به سرورهای با پايه Power5 ساخت آی‌بی‌ام علاقه‌مند است. من جمله محصول جديد Uinx Server كه هفته پيش معرفی شد. اما در واقع آقای Martine  خواستار نمونه‌ای از اين محصولات است كه عملكرد برنامه‌ای آن با ساير سيستم‌های آی‌بی‌ام قابل مقايسه باشد، نه اينكه خلاف اين سيستم‌ها عمل كند.

    Martine، از مديران شركت Royal واقع در ايالت ميامی آمريكا از IBM iSeries (سابقا AS/400)  و Pseries  Unix/Linux استفاده می كند. اين نمونه‌ها كه عملكرد اجرايی سيستم عامل را در محصولات چندگانه آی‌بی‌ام نشان می‌دهند به وی كمك می‌كند تا بهترين انتخاب را از ميان سرورها داشته باشد.

    او می‌گويد، اگر ما نمونه‌ای نداشته باشيم كه بتوانيم pSeries را با يك iSeries از جهت سيستم عامل (Operating System) يا  OS مقايسه كنيم، آنگاه مقايسه اين محصولات با تكنولوژی‌های ديگر از سازنده‌های ديگر نيز مشكل خواهد بود.

    Jim McGaughan، مدير بخش استراتژی eServer شركت آی‌بی‌ام می‌گويد، آی‌بی‌ام فعلا برنامه‌ای برای توليد نمونه‌های قابل مقايسه از اين دو محصول ندارد زيرا اصولا ساختار سخت‌افزاری iSeries و pSeries مشابه هستند. چنانچه شركتی علاقمند مقايسه عملكرد سيستم عامل  eSeries  با AIX است، كه در واقع نوعی Migration محسوب می‌شود، در چنين شرايطی آی‌بی‌ام به كاربر كمك می‌كند تا عملكرد اجرايی دو سيستم را ارزيابی كند.

    پردازشگرPower5 با پايه RISC دو هسته‌ای است، اما بر عكس چيپ Power4، دارای قدرت اجرايی Multi Threading است، به آن معنا كه اين پردازشگر می‌تواند دو جريان دستورالعمل را همزمان انجام دهد يا حتی تا 4 عملكرد را به صورت موردی انجام دهد.

     

    پرش:

    سازندگان سرور در يك مسابقه پرش بی انتهايی شركت كرده‌اند. به اعتقاد تحليلگران اين مسابقه در واقع رقابت در عملكرد چيپ است. اما سرورهای يونيكس و لينوكس با پايه Power5 پرش فوق‌العاده بلندی داشته‌اند.

    Brad Day، يكی از تحليلگران موسسه تحقيقاتی Forester در كمبريج ايالت ماساچوست می‌گويد، آی‌بی‌ام اكنون از حقوق معنوی گروه mainframe و تكنولوژی Virtual engine گروه Tivoli software group  شركت پول زيادی در می‌آورد. هر چند سيستم‌های يونيكس روز به روز بيشتر شبيه mainframe می‌شوند، در واقع هيچكدام mainframe نيستند.

    Dave Ennen، مدير IT شركت Winnebago Industries Inc در شهر Forest City ايالت آيووا از zSeries mainframe ساخت آی‌بی‌ام استفاده می‌كند. به اعتقاد او يونيكس و ساير سرورها جايگزين mainframe نخواهند شد. به منظور اجرای برنامه‌های بسيار مهم، شركت در تلاش است تكنولوژی Partitioning ريز پردازشگر را به سرورهای يونيكس اضافه كند.

    Ennen می‌گويد، علت استفاده ما از mainframe آن است كه هرگز نخواسته‌ايم از ارزش آن كم كنيم، در هر صورت به zSeries هرگز چنين وابستگی‌ نداريم.

    مديران آی‌بی‌ام می‌گويند، ميان تواناييهای انواع mainframe و سيستم‌هايی كه با يونيكس اجرا می شوند، فاصله زيادی وجود دارد. Ravi Arimilli يكی از كاركنان آی‌بی‌ام و مهندس ارشد بخش آی‌بی‌ام سيستم می‌گويد، به عنوان مثال برخلاف سيستم‌های يونيكس و لينوكس، در mainframe خطر اينكه كسی سردرگم شود تقريبا صفر است.

    Arimilli می‌گويد، يونيكس بالاخره از طريق Virtualization و قابليت دسترسی آسان و ويژگی‌های امنيتی پيشرفته، فاصله‌ها را پر می‌كند. او می‌گويد، نمی‌دانم چقدر طول می‌كشد، اما گمان نمی‌كنم به زودی اين اتفاق رخ دهد، حداقل يك دهه طول می‌كشد.

    به گفته Robert Gamso معمار ارشد سيستم‌ها در اين شركت توليد كننده لوازم خانگی، Virtualizing در سطح پردازشگر به معنِ آن است كه شركت Whirlpool مي‌تواند تعداد كارتهای شبكه، سيستم‌های ذخيره سازی شبكه و نيز هزينه مديريت و مونيتورينگ سيستم‌ها را كه بر اساس تعداد پردازشگرها محاسبه مي‌شود كاهش دهد.

    سخت افزار Power5 به آداپتورهای مجزا نياز دارد، اما Power5 نه. Gamso می‌گويد، اين كار هميشه مقرون به صرفه نيست. يعنی اضافه كردن كارت برای به دست آوردن  Virtualization.

     

     |+| نوشته شده در  جمعه نوزدهم بهمن 1386ساعت 7:5 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    جدال بر سر ابر محاسبات

    اريک اشميت، یک دانشمند علوم رایانهٔ بسیار باهوش، که به مدیرعامل یک موتور جست‌وجوی باهوش تبدیل شده، بیشتر عمرش را صرف رقابت با مایکروسافت کرده و در سکوت شاهد از میدان به در شدن تمام رقبای این غول نرم‌افزاری بوده است.
    اریک اشمیت در سان‌مایکروسیستمز، که مدیر ارشد اطلاعاتی آن بود، به چشم خود دید که اسکات مک‌نیلی –مدیرعامل و رئیس اسبق سان- استیو بالمر و بیل گیتس را «استیو بالمر و کله‌پوک» [نوعی بازی با کلمات بین Ballmer و Butthead - مترجم] خواند. اشمیت دید که کار مک‌نیلی و سان به کجا رسید؛ او در دوره چهار سالهٔ مدیرعاملی‌اش در ناول بارها به صراحت گفت که عقیده دارد برای یک رقیب مایکروسافت کار صحیحی نیست که مستقیماً با مایکروسافت رو در رو شود چون: «چنین کاری باعث برانگیخته شدن آتش خشم مایکروسافت خواهد شد.»
    اریک اشمیت بعد از مدتی مدیرعامل گوگل شد و حالا مدیریت یکی از مبتکرترین و قوی‌ترین شرکت‌های فناوری جهان را بر عهده دارد؛ شرکتی که در زمینه جست‌وجو و تبلیغات آنلاین هیچ رقیبی ندارد. گوگل، با منابع مالی گسترده و نگاهی به بازارهای جدید، شروع به عرضه محصولاتی کرد که همگی برای مایکروسافت تهدیدی جدی هستند: برنامه‌های کاربردی واژه‌پرداز و ساخت صفحات گسترده.
    به نظر می‌رسید مواجهه روزافزون مایکروسافت و گوگل در بازارهای مختلف در نهایت به یکی از بزرگ‌ترین جدال‌ها در تاریخ صنعت فناوری تبدیل شود. این مبارزه میزان رشد و شکوفایی هر دو شرکت، و همچنین نحوه کار، ارتباط، و به طور کلي زندگی دیجیتالي اشخاص و شرکت‌ها در آینده را تعیین خواهد کرد.

    از نظر گوگل همهٔ این کارها باید روی سرورهای این شرکت در اقصی نقاط جهان انجام شود و از طریق وب در دسترس اشخاص و شرکت‌ها قرار بگیرد. در این دیدگاه همه خدمات از روی چیزی به نام «ابْر محاسباتی» بر روی وسایل کاربران فرستاده خواهد شد.
    مایکروسافت هم برای آیندهٔ وب نقشه‌های دور و درازی دارد؛ ولی از نظر بزرگ‌ترین سازنده نرم‌افزار جهان مرکز تمام محاسبات، سیستم‌عامل این شرکت خواهد بود که روی رایانه‌های رومیزی کاربران نصب است. از اینجاست که اختلاف آغاز می‌شود.
    اریک اشمیت در مصاحبهٔ طولانی‌ای که در گوگل‌پلکس با ما انجام داد به شیوه‌های قدیمی خودش وفادار ماند و سعی کرد مستقیماً به مایکروسافت اشاره نکند. او در مواردی که بسیاری از کارشناسان صنعت فناوری حمله مستقیم گوگل به مایکروسافت می‌دانند بسیار محتاطانه صحبت کرد و تمام تلاش‌اش را به کار بست تا حرکات گوگل را طور دیگری جلوه دهد.
    او در جواب سؤال ما در مورد هدف گوگل از عرضه بسته نرم‌افزاری جدیدش –شامل برنامه مدیریت ایمیل، برنامه پیام‌رسانی فوری، تقویم، برنامه واژه‌پرداز، و برنامه ایجاد صفحه گسترده- و ارتباط آن با مایکروسافت گفت که هیچ ارتباطی وجود ندارد!
    Google Apps نسخه‌ ساده‌ای از مجموعه برنامه‌های گران‌قیمت آفیس مایکروسافت است که گوگل به طور رایگان عرضه می‌کند. با این حال اشمیت اصرار دارد که این برنامه‌های کاربردی چیزی نیستند جز یک حرکت طبیعی از سوی گوگل برای ارائه ظرفیت محاسباتی بیشتر به کاربرانش.
    او می‌گوید: «برای بیشتر مردم رایانه‌ها پیچیده و غیرقابل اعتماد هستند. آنها اطلاعات را از دست می‌دهند و به ویروس آلوده می‌شوند. اما اگر گوگل بتواند تمام این دردسرها را حذف کند و خدمات را از روی اینترنت در اختیار کاربران قرار بدهد، یک بهبود بزرگ در زندگی همه ایجاد کرده است.»
    آقای اشمیت برای توضیح بیشتر به سراغ تخته سفید دفترش می‌رود و با ماژیک رویش یک مستطیل می‌کشد. او نام تعدادی از کارهایی که می‌توان درون ابر محاسباتی انجام داد را در مستطیل می‌نویسد و تأکید می‌کند که با بیشتر شدن سرعت اتصال کاربران به اینترنت و بهبود نرم‌افزارهای تحت وب فهرست این کارها طولانی‌تر هم خواهد شد. اشمیت نام تعدادی از کارهایي که نمی‌توان در درون ابر انجام داد –مثل کارهای سنگین گرافیکی- را بیرون از مستطیل می‌نویسد. او می‌گوید: «می‌توان گفت فقط 10 درصد از محاسبات روزانه ما در حال حاضر قابلیت انجام شدن بر روی ابر را ندارند و یک رایانه رومیزی قوی برای انجام‌شان لازم است.»
    آیا از دیدگاه گوگل در نهایت 90 درصد از امور روزمره ما از طریق ابر محاسباتی انجام خواهد شد؟ اشمیت پاسخ می‌دهد: «از دیدگاه ما بله. تقریباً 90 درصد از هر کاری که کارمندان یک شرکت فناوری انجام می‌دهند قابلیت اجرا شدن از طریق ابر را دارد.»
    کاملاً روشن است که آقای اشمیت عقیده دارد روند تاریخ و فناوری در گوگل به هم رسیده است. اینکه او چقدر سعی دارد به مایکروسافت اشاره نکند مهم نیست چون بدون شک غول ردموند بی‌کار نخواهد نشست. مایکروسافت میلیاردها دلار سرمایه‌گذاری کرده تا بتواند در جست‌وجو و تبلیغات آنلاین عقب‌افتادگي خود از گوگل را جبران کند. البته تا اینجا هیچ موفقیتی کسب نکرده است. این دو شرکت در چندین و چند بازار بسیار مهم دیگر مثل نقشه‌های ماهواره‌ای تحت وب، ویدیوی آنلاین، و نرم‌افزار گوشی موبایل نیز با هم رقابت دارند.
    دیوید یوفی، استاد دانشگده اقتصاد هاروارد، می‌گوید: «مدل تجاری اصلی گوگل این است که قوانین دنیای نرم‌افزار را تغییر بدهد. بخش اعظم خدماتی که مایکروسافت امروزه در محصولاتش به کاربران ارائه می‌دهد دیگر ارزش چندانی ندارند و به زودی به صورت رایگان عرضه خواهند شد.
    در مایکروسافت صحبت‌های اشمیت به اعلان رسمی جنگ تعبیر شده است. نرم‌افزارهای سنتی که روی رایانه‌ها نصب می‌شوند منبع اصلی درآمد مایکروسافت هستند. از دیدگاه مدیران مایکروسافت اینکه 90 درصد از وظایف رایانه‌های دسک‌تاپ بر عهده ابرمحاسباتی گذاشته شود فقط خواب و خیال است.
    جف رایکس، رئیس واحد تجارت مایکروسافت که مجموعه نرم‌افزاری پر سود آفیس هم جزء آن است، می‌گوید: «بدون شک این دیدگاه با توجه به روندی که صنعت فناوری دارد در بهترین حالت غیردقیق است.» از نظر آقای رایکس، که بعد از گیتس و بالمر قدیمی‌ترین مدیر مایکروسافت است، حمله گوگل به مایکروسافت هم گستاخانه و هم گمراه‌کننده است. او می‌گوید: «تمام توجه گوگل بر منفعت خودش است. گوگل تلاش دارد نقش مایکروسافت را کم‌رنگ کند نه اینکه ببیند کاربران چه می‌خواهند.»
    رایکس تأکید می‌کند که مایکروسافت سالانه میلیارد‌ها دلار صرف پژوهش و تحقیق در مورد نیاز کاربران می‌کند. به گفته ایشان مایکروسافت نیازهای کاربران خانگی و تجاری را تا دقیق‌ترین جزئیات مطالعه می‌کند و طبق یافته‌های این شرکت کاربران نرم‌افزارهای دسک‌تاپ را ترجیح می‌دهند. بنا بر سخنان رایکس کاربران ویژگی‌های متعدد آفیس را دوست دارند و گواه این حرف هم سهم آفیس از بازار است. او می‌گوید: «در حال حاضر 500 میلیون نفر از آفیس استفاده می‌کنند. این خودش بهترین گواه در مورد دیدگاه کاربران است.»
    واقعاً هم مایکروسافت یکی از پیشروترین شرکت‌ها در زمینه نرم‌افزارهای اداری و خانگی است. سهم مایکروسافت آفیس از بازار حدود 90 درصد است. ولی به عقیده کارشناسان خدمات جدید گوگل بیشتر یک راهبرد بلندمدت است تا یک رو در رویی مستقیم با مایکروسافت. گوگل به نرم‌افزارهای تحت وب چشم دارد که اصول و اقتصاد کاملاً متفاوتی دارند.
    کارشناسان صنعت فناوری همچنین اعتقاد دارند که گوگل با بقیه رقبایی که مایکروسافت در سال‌های اخیر از میدان به در کرده متفاوت است. گوگل از بقیه بزرگ‌تر، پول‌دار‌تر، باهوش‌تر، و سریع‌تر است. علاوه بر همه اینها فناوری ابر محاسباتی گوگل می‌تواند هر دری را بر روی این شرکت باز کند. مراکز داده عظیم گوگل توسط مهندسین آن برای به دست آوردن بیشترین بازده، بیشترین سرعت، و کمترین قیمت طراحی شده‌اند. در نتیجه گوگل از نظر قدرت محاسباتی هیچ رقیبی ندارد و می‌تواند بدون صرف هزینه زیاد خدمات متنوعی را به سبد محصولاتش اضافه کند.
    هال واریان، استاد دانشگاه برکلی و مدیر ارشد مالی گوگل، می‌گوید: «وقتی کسی چنین مراکز داده قدرتمندی داشته باشد، می‌تواند به سادگی کارکردهای جدیدی برایشان تعریف کند.» گوگل این امکان را دارد که خدمات جدید را به صورت رایگان یا با هزینه بسیار کم به کاربران عرضه کند. چون می‌تواند هزینه‌هایش را از محل تبلیغات جبران کند.
    به نظر می‌رسد که شروع مبارزه گوگل با مایکروسافت کاملاً برای این موتور جست‌وجو امیدوارکننده است. ولی پا کردن در کفش یک غول یک چیز است و شکست دادن آن چیزی دیگر.
    مایکروسافت هم، البته، بی‌کار ننشسته است. این شرکت همان‌طور که در ابتدای دهه نود با تعبیه برنامه مرورگر وب در سیستم‌عامل محبوبش تمام رقبا را از میدان به در کرد، حالا هم راهبرد مشابهی را در پیش گرفته و خدمات مبتنی بر وب را در محصولات فعلی‌اش جاسازی می‌کند. البته حرکت مایکروسافت در این مسیر بسیار محتاطانه است تا به سوددهی نرم‌‌افزارهای دسک‌تاپ‌اش خللی وارد نشود.
    بیش از هر چیز دیگری، میزان موفقیت نرم‌افزارهای تحت وب گوگل برای ارتباطات، مشارکت، و تهیه اسناد مشخص خواهند کرد که آیا این شرکت توانایی فراتر رفتن از حیطه جست‌وجو را دارد یا خیر. باید دید که آیا دو فرمول گوگل –روش سرعتیِ این شرکت برای ساخت نرم‌افزارهای جدید و رویکرد سخاوتمندانه‌اش در استخدام نیروهای متخصص و به کارگیری ابتکارات آنها- باعث موفقیت‌اش خواهند شد؟
    فرهنگ حاکم بر گوگل ممکن است برای بعضی از کارمندان این شرکت –حتی اشمیت- دردسرساز باشد. او به یاد می‌آورد که مدت کوتاهی بعد از ملحق شدن به این شرکت و دو مؤسس جوانش، لری پیج و سرگئی برین، از اینکه افراد حاضر در جلسات در میان سخنان وی ایميل‌های خود را جواب می‌دادند آزرده شده بود. او می‌گوید: «دیگر از تغییر دادن این رفتارها ناامید شده‌ام. آنها باید ایمیل‌هایشان را جواب بدهند. سرعت مهم‌ترین چیز است.»
    سرعت بدون شک مهم است و گوگل هم از‌ آن نهایت استفاده را می‌برد. نرم‌افزارهای سنتی معمولاً در یک دوره دو یا سه ساله ساخته می‌شوند. اما به گفته اشمیت در گوگل هیچ طرح دوساله‌ای وجود ندارد. برنامه‌ریزی‌های گوگل حداکثر برای چهار یا پنج ماه انجام می‌شوند و همه سعی دارند برای سه‌ماهه بعدی پروژه‌های خود را به سرانجام رسانده ‌باشند.
    گوگل این سرعت را جزئی جدایی‌ناپذیر از ابر محاسباتی می‌داند. همه محصولات گوگل تحت وب هستند و بنابراین لزومی ندارد که منتظر تولید لوح‌های فشرده باشد یا برای هماهنگی با زنجیره توزیع تلاش کند. در داخل گوگل مراحل نهایی ساخت نرم‌افزارها در ماراتون‌های برنامه‌نویسی 24 یا 48 ساعته‌ای به نام «Hack-a-Thons» انجام می‌شود. بعضی از اوقات گوگل مهندسین شرکت‌های دیگر را به این جلسات برنامه‌نویسی سرعتی (و قدرتی!) دعوت می‌کند تا تشویق شوند که نرم‌افزارهایشان را بر اساس استاندارد‌ها و روش‌های گوگل بسازند.
    روزآمدسازی‌ها و ویژگی‌های جدید به طور پیوسته ساخته می‌شوند و روی رایانه‌های خود گوگل مورد آزمایش قرار می‌گیرند. به این ترتیب کاربران هر روز شاهد ویژگی‌های جدیدی خواهند بود که به برنامه‌های کاربردی مورد استفاده‌شان افزوده شده است. در دو ماه گذشته 8 ویژگی جدید به سیستم ایمیل تحت وب گوگل، يعني جی‌میل، افزوده شده است. یکی از این ویژگی‌های جدید استفاده از جی‌میل از روی گوشی‌های موبایل را ساده می‌کند. برنامه‌های کاربردی آنلاین گوگل مثل برنامه واژه‌پرداز و ساخت صفحه گسترده هم در 2 ماه اخیر روزآمدسازی‌های مشابهی داشته‌اند.
    در ابتدای ماه جاری، گوگل یک نرم‌افزار جدید برای گوشی‌های موبایل عرضه کرد که با نام رمز Grand Prix شناخته می‌شود. انجام این پروژه فقط 6 هفته طول کشید. Grand Prix دسترسی به سرویس‌های گوگل را از روی گوشي‌های موبایل ساده می‌کند. (البته نسخه فعلی‌ آن برای آی‌فون طراحی شده ولی گوگل قصد دارد آن را برای بقیه گوشي‌ها هم عرضه کند.)
    پروژه Grand Prix وقتی به وجود آمد که یکی از مهندسین گوگل در تعطیلاتش نسخه اولیه کدهای ‌آن را نوشت و برای رئیس‌اش –ویک گان‌دورتا که مسئول نظارت بر پروژه‌های مربوط به موبایل در گوگل است- ایمیل کرد. گان‌دورتا کد را به اشمیت نشان داد. اشمیت هم به برین زنگ زد. یک ساعت بعد برین بر سر میز مهندس مذکور حاضر بود تا کدها را ببیند.
    گان‌دورتا می‌گوید برین حمايت خیلی خوبی از این ایده کرد. او می‌گوید: «او از روش‌های مهندسی هوشمندانه‌ای که در نوشتن کد مذکور به کار رفته بود خوشش آمد.» بعد گان‌دورتا روی سخن‌گاه (فوروم) داخلی گوگل مطلبی نوشت و از همه کارمندانی که آی‌فون داشتند خواهش کرد که برنامه مذکور را بررسی کنند. چنین کاری در گوگل کاملاً مرسوم است. گوگلی‌ها ضرب‌المثلی دارند به این مضمون: «هیچ‌چیز گویاتر از یک رشته کد نیست.»
    همکاران گان‌دورتا شروع به بررسی Grand Prix از نظر سرعت عملکرد، میزان استفاده از حافظه، و بقیه ویژگی‌ها کردند. گان‌دورتا به یاد می‌آورد: «در مدت کوتاهی بازخوردها به سمت ما سرازیر شدند.» بیشتر بازخورد‌ها مثبت بود. بعد از چند هفته کار Grand Prix به طور رسمی عرضه شد.
    گان‌دورتا در ماه ژوئیه سال جاری به گوگل ملحق شده است. او به مدت 15 سال کارمند مایکروسافت بوده است. او می‌گوید که همیشه فکر می‌کرده که مایکروسافت بهشت هر برنامه‌نویس است ولی پیدایش پدیده ابر محاسباتی باعث شد که در دیدگاهش تجدید نظر کند.
    او می‌گوید: «مشخص شد که من فقط در گوگل می‌توانم از همه توانایي‌هایم استفاده کنم. برای کسانی مثل من که رابطه عاشقانه‌ای با نرم‌افزار دارند، اینکه بتوان یک محصول را در چند هفته عرضه کرد وسوسه‌ای غیر قابل مقاومت است.»
    یک وسوسه دیگر در گوگل آزادی انجام تجربه‌های جدید و باز بودن راه برای انجام کارها از روش‌های مختلف است. خیلی پیش می‌آید که فارغ‌التحصیل‌های جوان در گوگل استخدام شوند بدون اینکه وظایفشان تعریف شده باشد. یکی از علت‌های این روش استخدام حفظ اسرار است. ولی علت دیگر این است که واقعاً خود  گوگل هم نمی‌داند قرار است به آنها چه وظیفه‌ای را محول کند.
    کریسف بیسکیلیا، یک مهندس 27 ساله، در مقیاس گوگلی پیش‌کسوت محسوب می‌شود چون 4 سال سابقه کار در این شرکت دارد. او در در دو سال گذشته تعداد زیادی کارمند جدید را از دانشگاه‌های مختلف برای گوگل استخدام کرده و با بیش از 100 متقاضی مصاحبه کرده است.
    آقای اشمیت با صداقت کامل اعتراف می‌کند که ابر محاسباتی یک‌شبه وارد بازار نخواهد شد. شرکت‌های بزرگ به کندی عاداتشان را عوض می‌کنند و مصرف‌کنندگان هم همین طور هستند. با این حال، بنا بر سخنان اشمیت، شرکت‌های کوچک، متوسط، دانشگاه‌ها و مراکز تحقیقاتی –به عبارت دیگر اکثریت کاربران رایانه- می‌توانند با سرعت قابل قبولی به استفاده از خدمات تحت وب روی بیاورند.
    او می‌گوید: «شرکت‌های کوچک می‌تواند با استفاده از خدمات تحت وب هزینه‌های خود را به طور محسوسی پایین بیاورند و از دردسرهای نگهداری بانک‌های اطلاعاتی هم خلاص شوند. برای شرکت کوچکی که تازه کارش را آغاز کرده خرید سیستم‌های گران‌قیمت رایانه‌ای دیوانگی است. از‌ آن بدتر خرید نرم‌افزارهای گران‌قیمت است.»
    با این وجود، گوگل برای رسیدن به موفقیت در این کسب‌وکار باید گستره وسیعی از کاربران را به خودش جلب کند. تلاش‌های گوگل در این زمینه تحت رهبری دیو گیروارد، مدیر کسب‌وکار شرکت‌های بزرگ در گوگل، انجام می‌شود. او در سال 2004 و کمی بعد از اینکه گوگل تصمیم گرفت وارد کسب‌وکارهایی فراتر از جست‌وجو شود، به گوگل ملحق شد.
    جی‌میل، محصولی که کمی بعد از وارد شدن گیروارد به گوگل منتشر شد، نشان‌دهنده تکامل راهبردهای گوگل به بازارهایی فراتر از جست‌وجو و تلاشش برای رقابت با مایکروسافت است.
    پل بوشیه، یکی از مهندسین گوگل، کار روی پروژه‌‌ای که بعداً به جی‌میل تبدیل شد را از سال 2001 آغاز کرد. آن زمان در داخل گوگل مخالفت‌هایی با این پروژه وجود داشت. در آن زمان گوگل خدمات جست‌وجوی یاهو را تأمین می‌کرد که برای این شرکت تازه‌کار منبع خوبی از درآمد بود. گوگل نمی‌خواست با عرضه محصولی، یاهو را از خودش برنجاند. مشکل دیگر گوگل ترس از قرار گرفتن رو در روی مایکروسافت بود.
    آقای بوشیه می‌گوید: «بدون شک یکی از دلایل مخالفت با این پروژه ترس از دشمنی مایکروسافت بود.» بوشیه حالا از گوگل خارج شده و برای یک شرکت نوپا کار می‌کند.
    ساخت جی‌میل، به‌عنوان اولین پروژه کامل تحت وبی که گوگل بعد از موتور جست‌وجویش انجام داد، زمان زیادی برد. لازم بود ویژگی‌های جدیدی به آن اضافه شود و بعد صدها مهندس گوگل آن را مورد بررسی قرار بدهند و تأیید کنند. لازم شد مراکز داده گوگل ارتقا داده شوند تا امکان ارائه فضای ذخیره‌سازی بسیار زیاد به کاربران فراهم شود.
    بعد از گذشت چند سال و با قدرت گرفتن گوگل از لحاظ مالی و ساختاری، دیگر عصبانی شدن مایکروسافت باعث ترس گوگل نمی‌شد. بوشیه در این مورد می‌گوید: «گوگل جای خودش را باز کرده بود و می‌توانست با خیال راحت‌تری به رقابت با مایکروسافت بپردازد.»
    گوگل خودش را نماینده تغيیر و تحول در میان شرکت‌ها و سازمان‌ها می‌داند؛ شرکتی که موانع قدیمی را از پیش پای شرکت‌های بزرگ بر می‌دارد. گیروارد می‌گوید: «در 30 یا 40 سال اخیر دیواری به بزرگی دیوار چین بین شرکت‌ها و فناوری‌های مورد استفاده در بازار مصرفی وجود داشته است. اما حالا دیگر چنین مانعی هیچ محلی از اعراب ندارد.».
    ورود جدی گوگل به بازار شرکتی و سازمانی از ابتدای سال جاری آغاز شد؛ ولی آقای گیروارد از نتایج عملکرد این شرکت در همین مدت کوتاه رضایت کامل دارد. به گفتة وی در هر روز کاری حدود 2 هزار شرکت کوچک و متوسط برای استفاده از Google Apps اعلام آمادگی می‌کنند. البته بیشتر آنها نسخه رایگان این نرم‌افزار را برای بررسی بیشتر انتخاب می‌کنند. اما بنا بر سخنان گیروارد، گوگل هیچ مشکلی با این مسئله ندارد چون استفاده از نسخه رایگان هم از طریق تبلیغات برای گوگل درآمد غیرمستقیم ایجاد می‌کند. اما شرکت‌هایی که بیشتر از 50 کارمند دارند معمولاً بعد از یک دوره آزمایشی 60 روزه نسخه پولی Google Apps را انتخاب می‌کنند که سالانه 50 دلار در ازای هر کاربر (به همراه پشتیبانی) قیمت دارد.
    برنامه‌های کاربردی تحت وب گوگل نسخه‌هایی ساده و محدود از مجموعه آفیس مایکروسافت هستند. اما مدیران گوگل می‌گویند بسیاری از کاربران از همین چند ویژگی اصلی استفاده می‌کنند و ویژگی‌های پیچیده و زیاد آفیس عملاً برای‌شان بی‌مصرف است.
    آقای گیروارد می‌گوید: «اگر مشغول ساخت یک سند پیچیده مثل گزارش سالیانه شرکت خودتان باشید بدون شک برنامه Word مایکروسافت را می‌خواهید، اگر بخواهید یک مدل دارای جزئیات از ساختار مالی یک شرکت بسازید هم بدون شک باید به سراغ Excel بروید. محصولات مایکروسافت برای چنین کارهايی ایده‌آل هستند. اما واقعاً درصد کمی از کارهای روزمره ما این چنین هستند.»
    به گفته گیروارد، ورود گوگل به این بازار باعث شده که توجه بسیاری از شرکت‌ها به فناوری ابر محاسباتی جلب شود. او می‌گوید: «مدیران ارشد فناوری شرکت‌های بزرگ هر روز هفته با ما تماس می‌گیرند تا از قدم بعدی ما مطلع شوند. آنها می‌خواهند بدانند ما قادر به انجام چه کارهای هستیم. چند شرکت بزرگ مثل جنرال الکتریک و Procter & Gamble‌ هم رسماً اعلام کرده‌اند که در حال بررسی استفاده از Google Apps هستند.
    گیروارد پیش‌بینی می‌کند که در سال آینده چندین و چند شرکت بزرگ برای ده‌ها هزار کارمندشان از Google Apps استفاده خواهند کرد.
    اما مایکروسافت تمام اینها را فقط خواب و خیال می‌داند. به گفته آقای رایکس بررسی همه جانبه مایکروسافت در بازار نرم‌افزارهای شرکتی و سازمانی نشان می‌دهد که گرایش‌های مورد ادعای گوگل اصلاً وجود خارجی ندارد. او می‌گوید: «هیچ چیزی شبیه یا نزدیک به سخنان آقای گیروارد در بازار نرم‌افزارهای شرکتی و سازمانی وجود ندارد.» 
    به هر روی تصمیماتی که مدیران فناوري شرکت‌ها، دانشجویان دانشگاه‌ها، و کاربران سخت‌گیر خانگی در چند سال ‌آینده خواهند گرفت میزان موفقیت گوگل را تعیین خواهد کرد.
    اما انجام کارهایی مثل مدیریت ارسال و دریافت ایمیل، ساخت صفحات گسترده، تايپ، و مشارکت در کارهای گروهی واقعاً به صورت تحت وب چقدر ساده و ارزان خواهد بود؟ آیا در آینده نزدیک اتصال‌های اینترنت به‌اندازه‌ای که گوگل دوست دارد نشان بدهد، ارزان و سریع و قابل اعتماد خواهند شد؟ آیا شرکت‌ها، دانشگاه‌ها، و مردم عادی به گوگل برای ذخیره کردن اسنادشان اعتماد خواهند کرد؟
    در سطح شرکتی و سازمانی یگانه نقطه اتکای گوگل، سرویس ایمیل تحت وب ارزان و کاربرپسندش است. حدود 160 کارمند BankFirst، یک بانک کوچک محلی در می‌سی‌سی‌پی، 2 ماه است که با رضایت کامل از جی‌میل استفاده می‌کنند و آن را جایگزین سیستم ایمیل قدیمی خودشان کرده‌اند. کارمندان این بانک از تقویم آنلاین گوگل و برنامه پیام‌رسان فوری  Google Apps برای یافتن سريع پاسخ سؤالات مشتریان و هماهنگ کردن جلسات استفاده می‌کنند.
    ولی این بانک در حال حاضر هیچ تصمیمی برای استفاده از برنامه واژه‌پرداز و ساخت صفحه گستردة Google Apps ندارد. مثل خیلی از شرکت‌ها و سازمان‌های دیگر، این بانک هم کاملاً به مجموعه آفیس مایکروسافت متکی است. جاش هیلی، مدیر فناوری اطلاعات این بانک، می‌گوید: «واقعاً به نظرم نمی‌رسد در آینده نزدیک تغيیری در این وضعیت ایجاد شود.»
    طبق آمار منتشر شده از سوی مؤسسه تحقیقاتی Compete.com، سرویس مبتنی بر وب Google Docs هر روز محبوبیت بیشتری کسب می‌کند. این سرویس تا ماه نوامبر حدود 1.6 میلیون کاربر به دست آورده که نسبت به سال گذشته 7 برابر شده است. این پیشرفت خوبی است ولی آفیس مایکروسافت با 20 سال سابقه در حال حاضر بیش از 500 میلیون کاربر دارد. حقیقت این است که حتی اگر اشمیت و گوگل در مورد پتانسیل‌ محاسبات ابری در محیط‌های کاری درست گفته باشند، باز هم در حال حاضر آفیس در شرکت‌ها به عنوان انتخابی مطمئن‌تر شناخته می‌شوند.
    یک میدان نبرد حیاتی دیگر برای هر دو شرکت بازار دانشگاه‌ها است. در این بازار به دست آوردن پول اولین اولویت را ندارد چون مسئله اصلی کسب اعتماد و وفاداری دانشجویانی است که در آینده در کسوت مدیران و كارشناسان و دانشمندان به مشتریانی خوب تبدیل خواهند شد. به عنوان نمونه گوگل و مایکروسافت، هر دو، سرویس ایمیل تحت وب مجانی به دانشگاه‌ها ارائه می‌دهند. 
    سال گذشته وقتی دانشگاه آریزونا -که بزرگ‌ترین دانشگاه ایالات متحده است و 65 هزار دانشجو دارد- تصمیم گرفت سیستم ایمیل‌اش را تعویض کند، درباره امنیت اطلاعات دانشجویان روی سرورهای گوگل نگران بود. آدریان سِنیه، مدیر ارشد فناوری این دانشگاه، می‌گوید: «مثل وقتی است که کسی ترجیح می‌دهد پول‌هایش را به جای بانک در تشک خودش مخفی کند. گاهی انسان فکر می‌کند کار درست این است که خودش از پولش مراقبت کند.» اما در نهایت ایالت آریزونا تصمیم گرفت که گوگل بهتر از خود دانشگاه می‌تواند این وظیفه را انجام بدهد.
    آقای سانیه گفت که مایکروسافت نيز در ایالت آریزونا خدمات رایگان ایمیل ارائه می‌دهد، اما آنها به این نتیجه رسیدند که گوگل انتخابی درست‌تر است چون این شرکت تعهد کاملی به نرم‌افزارهای کاربردی تحت وب و رایگان دارد. او می‌گوید: «در بررسی‌هایی که انجام دادیم به نظرمان رسید که مایکروسافت در زمینه ابْر محاسباتی رویکردی متناقض و ناهماهنگ دارد.»
    مهاجرت دانشگاه آریزونا به سرویس ایمیل تحت وب گوگل بدون هیچ مشکلی انجام شد و آقای سانیه تخمین می‌زند که این دانشگاه با استفاده از خدمات گوگل سالانه نیم میلیون دلار صرفه‌جویی خواهد کرد. به گفته سانیه دانشجویان چیزی بیشتر از ایمیل به دست آورده‌اند. هم‌اکنون تمام دانشجویان این دانشگاه به خدمات تحت وب گوگل Google Apps دسترسی دارند و هزاران نفر از آنها از تقویم آنلاین، برنامه واژه‌پرداز، و برنامه ساخت صفحات گسترده گوگل استفاده می‌کنند. 
    البته هیچ تردیدی نباید داشت که مایکروسافت این بازار رو به رشد را به نفع گوگل ترک نخواهد کرد. این شرکت سرمایه‌گذاری هنگفتی در ساخت مراکز داده قدرت‌مند برای ارائه خدمات تحت وب انجام داده است. در داخل مایکروسافت مهندسین و مدیران فراوانی هستند که وقتی از ایده‌هایشان صحبت می‌کنند دقیقاً شبیه به گوگلی‌ها به نظر می‌رسند.
    الی پاورز‌ بویل فارغ‌التحصیلی 25 ساله از دانشگاه MIT است و روی محصول ایمیل تحت وب مایکروسافت کار می‌کند. به گفته وی در سه سال گذشته ده‌ها ارتقای مهم در سیستم ایمیل تحت وب مایکروسافت انجام شده که کارایی آن را بسیار بیشتر کرده است. در هر یک از این ارتقاها خود او مسئول کار روی سه یا چهار ویژگی جدید بوده است. او می‌گوید: «ما سریع کار می‌کنیم. برای کسی از نسل من اینکه چند سال صبر کنی تا ببینی کارت روی یک محصول، موفقیت‌آمیز بوده یا نه هیچ مفهومی ندارد.»
    مشکل مایکروسافت این نیست که توانایی انجام کارهایی که گوگل انجام می‌دهد را ندارد، مشکل مایکروسافت سردرگمی‌ای است که از دیدگاه تجاری پیدا کرده. تاکنون رویکرد مایکروسافت این بود که خدمات تحت وب را به محصولات دسک‌تاپ‌اش ارتباط بدهد. خود مایکروسافت این محصولات را «نرم‌افزار به انضمام خدمات تحت وب» می‌نامد. در واقع مایکروسافت سعی دارد که خدمات تحت وب را ارائه بدهد بدون اینکه به حاشیه سود‌دهی نرم‌افزارهای دسک‌تاپ‌اش خللی وارد شود. این روش در حال حاضر برای مدیران و سهام‌داران مایکروسافت راهبردی هوشمندانه محسوب می‌شود ولی برای دراز مدت قابل پی‌گیری نیست.
    اگر فرض کنیم که رقابت بالا بگیرد، باز هم آفیس یک محصول برجسته باقی خواهد ماند ولی شاید مایکروسافت نتواند مثل حالا در ازایش پول بگیرد؛ همان‌طور که رایانه‌های شخصی رومیزی در نهایت جای رایانه‌های مین‌فریم را گرفتند و رسانه‌های سنتی به رسانه‌های اینترنتی و دیجیتال تبدیل شدند. البته محصولات سنتی یک‌شبه ناپدید نخواهند شد و باز هم در بازار باقی خواهند ماند، ولی حاشیه سوددهی آنها مثل گذشته نخواهد بود.
    گوگل هم به نوبه خودش مشکلات زیادی در سر راه دارد: رقابت با مایکروسافت و همچنین شرکت‌هاي دیگری که خدمات مبتنی بر وب ارائه می‌دهند. گزارش اخیر Burton Group نشان می‌دهد که هنوز روشن نیست که گوگل خواهد توانست روند رشد محصولات جدیدش را حفظ کند یا خیر. کریس کاپوسلا، یکی از مدیران مایکروسافت، می‌پرسد: «آیا گوگل واقعاً می‌خواهد بهره‌وری کاربران تجاری را بالا ببرد؟ اما مایکروسافت تعهد کاملی به کارهای اداری و تجاری دارد. هیچ‌کس روی کره زمین مایکروسافت را بدون مجموعه آفیس به یاد نمی‌آورد. این بخشی از DNA مایکروسافت است. لازم به ذکر نیست که ما هر کاری از دستمان بر بیاید را انجام می‌دهیم تا در این بازار باقی بمانیم، و هر کسی که سد راه‌مان بشود را از پیش رو بر خواهیم داشت.
     
    منبع : سایت خبری ict

     
     |+| نوشته شده در  جمعه نوزدهم بهمن 1386ساعت 5:49 بعد از ظهر  توسط حامد سلیمی پور  |  داغ کن - کلوب دات کام

    محاسبات به ابرها می‌رود

    یاهو، و گوگل سخت در تلاش هستند که قدرت «محاسبات ابری» را در عمل به کار بگیرند. در اينجا نگاه کوتاهی مي‌اندازيم به نحوه کار این فناوری
    گویا پژوهش‌گرانی که به دنبال یافتن روش‌های هوشمندانه‌تری برای انجام محاسبات سنگین هستند جواب را در ابرها یافته‌اند! البته نه ابری که به‌صورت توده‌های متراکم بخار آب در آسمان این سو و آن سو می‌رود. آنها فکر می‌کنند کلید انجام محاسبات سنگین و حجیم در چیزی به نام «ابْر محاسباتی» است. قرار است این ابر محاسباتي، قدرت ابررایانه‌ها را در اینترنت قرار بدهد.
    به تازگی IBM هم برنامه‌های خود برای خلق فناوری‌های مربوط به محاسبات ابری را اعلام کرده است. روز پانزدهم نوامبر مدیران IBM در شانگهای از یک سیستم جدید به نام «ابر آبی» پرده‌بردا