توضيح : چندي پيش [a href=http://www.iranasp.net/MemberDetail.aspx?username=MgOOQ%2bG26P5RlhZV6JqjL7o827GRZG7a]اميد خندان[/a] اطلاعات مفيد و مختصري درباره تلاشهاي موازي براي پيادهسازي پلاتفرم داتنت روي سيستمعاملهاي ديگر (از جمله لينوکس و يونيکس) برايم ارسال کرد. مطالعه منابع ذکرشده در آن مطلب من را برآن داشت که تحقيقي پيرامون ابعاد اين جريان انجام دهم. آنچه که اکنون مطالعه ميکنيد ، حاصل نخستين برداشتها و تحليلهاي من درباره پروژههاي پيادهسازي .NET روي سيستمعاملهاي ديگر خصوصا سيستمعاملهاي اپن سورس است.
تقريبا مقارن با همان دورهاي که شرکت مايکروسافت براي نخستين بار پلاتفرم داتنت را به صنعت آيتي معرفي ميکرد ، تلاشهايي از سوي اين شرکت براي ثبت عناصر زيربنايي اين پلاتفرم به عنوان عناصر استاندارد ، صورت گرفت بود. اين تلاشها ظاهرا موفقيت آميز بوده و اکنون چندسالي است که زبان C# و معماري زيربنايي داتنت يعني CLI (مخفف Common Language Infrastructure) به عنوان استانداردهاي ECMA و ISO پذيرفته شدهاند. براي مشاهده اين استانداردها ميتوانيد منابع زير را ببينيد :
[div align=left]
[a href=http://www.ecma-international.org/publications/standards/Ecma-334.htm]Standard ECMA-334 (C#)[/a]
[a href=http://www.ecma-international.org/publications/standards/Ecma-335.htm]Standard ECMA-335 (CLI)[/a]
[a href=http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=36768]Standard ISO/IEC 23270 (C#)[/a]
[a href=http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=36769]Standard ISO/IEC 23271 (CLI)[/a]
[/div]
مايکروسافت همچنين به موازات برنامه فوق ، پروژهاي موسوم به Shared Source را در مقابل Open Source مطرح کرده است که مدتهاست براي کارشناسان شناختهشده است. فلسفه اصلي اين پروژه آن است که به تدريج بخشهايي از سورس کد سيستمعامل ويندوز و ديگر پلاتفرمهاي ساخت اين شرکت در معرض ديد عموم قرار گيرد تا به اين ترتيب به قسمتي از انتقاداتي که در جريان دادگاه آنتيتراست اين شرکت به آن وارد شده بود ، پاسخ مثبت داده شود. اما از آنجا که بناي کسب و کار مايکروسافت فروش نرمافزار تجاري است ، اين شرکت نميتواند به ديگران اجازهدهد سورس کد مذکور را در نرمافزارهاي خود کپي کنند و مورد استفاده قرار دهند. کارشناسان اصطلاح ((سورس پشت شيشه)) را براي توصيف اين حالت بکار ميبرند. يعني شما ميتوانيد سورس منتشر شده در قابل پروژه Shared Source را به طور کامل ببينيد ولي نميتوانيد به آن دست بزنيد ، تغييرش دهيد يا از آن براي استفاده در نرمافزارهاي خود کپي کنيد. تنها فايده اين سورس پشت شيشه آنست که سازندگان نرمافزارهاي تحت ويندوز ميتوانند با مطالعه اين سورس پي به ساختار زيربنايي پلاتفرم مايکروسافت ببرند و از اين طريق برنامههايي بنويسند که بهتر کار ميکند و با سيستمعامل ويندوز سازگاري بيشتري دارد.
مهمترين اقدام مايکروسافت در قالب برنامه ((سورس اشتراکي)) انتشار سورس کد عناصر زير بنايي پلاتفرم داتنت بوده است. اين سورس کد را ميتوانيد از طريق آدرسهاي زير دريافت و مشاهده کنيد :
[div align=left]
[a href=http://msdn.microsoft.com/netframework/using/understanding/cli/default.aspx]The Common Language Infrastructure (CLI)[/a]
[a href=http://msdn.microsoft.com/library/en-us/dndotnet/html/mssharsourcecli2.asp?frame=true]The Microsoft Shared Source CLI Implementation Refresh (.NET Development (General) Technical Articles)[/a]
[a href=http://msdn.microsoft.com/msdnmag/issues/02/07/SharedSourceCLI/default.aspx]Rotor Shared Source CLI Provides Source Code for a FreeBSD Implementation of .NET[/a][/div]
Rotor نام پروژه مشترکي است که مايکروسافت با همکاري شرکت Corel دنبال ميکند و طي آن چارچوب داتنت يا همان .NET Framework براي سيستمعامل مبتني بر يونيکس [a href=http://www.google.com/search?hl=en&lr=&ie=UTF-8&oi=defmore&q=define:FreeBSD]FreeBSD[/a] بازتوليد ميشود. روتور به صورت سورس اشتراکي اجرا ميشود بنابراين سورس کد اين پروژه براي عموم قابل مشاهده است اما هيچ شرکتي حق کپي کردن و استفاده کردن بخشي از اين سورس را در نرمافزار خود ندارد.
به دنبال اين تحولات دو جريان تقريبا مستقل از سوي جامعه اپن سورس براي پاسخ دادن به پروژه روتور و استانداردهاي CLI و #C شکل گرفته است. يکي از اين پروژهها dotGNU نام دارد که تحت ليسانس GNU آغاز به فعاليت نموده و هدفش پيادهسازي پلاتفرم داتنت روي بيشتر سيستمعاملهاي متداول دنيا خصوصا لينوکس است. ديگري Mono نام دارد که تلاشي است براي پيادهسازي پلاتفرم داتنت روي سيستمعامل يونيکس به صورت اپن سورس. اين پروژه تحت حمايت مادي و معنوي شرکت Novell و با هدايت فني شرکت Ximian که اينک توسط ناول خريداري شده است اجرا ميشود. دقت کنيد که هردو پروژه به صورت اپن سورس اجرا ميشوند ولي پروژه مونو هدف اصلياش يونيکس است و عبارت اپن سورس نبايد اين تصور را بوجود آورد که هر دو پروژه به لينوکس گرايش دارند هرچند سورس کد مونو روي هر سه سيستمعامل ويندوز ، لينوکس و يونيکس قابل اجراست. سايت هر يک از اين دو پروژه از اين قرار است :
[div align=left]
[a href=http://www.go-mono.com]The Ximian's Mono Project sponsored by UNIX [/a]
[a href=http://www.dotgnu.org/pnet.html]Free Software Foundation's Portable .NET [/a][/div]
اما برنامهنويسان و مجريان اين پروژهها سورس کد پلاتفرم داتنت را چگونه بدست آوردهاند؟
همانطور که در اين صفحه : [a href=http://www.go-mono.com/faq.html]Mono FAQ[/a] و اين صفحه [a href=http://www.southern-storm.com.au/pnet_faq.html]dotGNU Protable.NET FAQ[/a] توضيح داده شده است ، برنامه نويسان هر دو پروژه با مراجعه به سورس کد ثبت شده در ECMA و ISO و نگاه کردن به سورس کد روتور متعلق به مايکروسافت و کورل سعي کرده اند اين پلاتفرم را بازسازي کنند. آنان البته حق ندارد هيچ قسمتي از سورس اشتراکي مايکروسافت را داخل سورس کد خود کپي کنند ولي به راحتي ميتوانند آن را بخوانند و پلاتفرم داتنت را از ابتدا بازسازي و شبيه سازي کنند.
چنانکه ميتوان از قبل حدس زد ، موضع پروژه dotGNU نسبت به مايکروسافت و حتي خود پلاتفرم داتنت خصمانه است و [a href=http://www.dotgnu.org/danger.html]اين واقعيت را خود دست اندرکاران dotGNU صادقانه بيان کردهاند[/a]. اما موضعگيري پروژه مونو نسبت به مايکروسافت و پلاتفرم داتنت کاملا دوستانه به نظر ميرسد و اين را ميتوان از [a href=http://www.go-mono.com/faq.html#msft]نحوه توصيف آنان از برنامه سورس اشتراکي مايکروسافت [/a]فهميد. مونو رسالت خود را اين ميداند که به برنامهنويسان بگويد حيف است قابليتهاي پلاتفرم داتنت محدود به ويندوز مايکروسافت باقي بماند و همه پلاتفرمهاي ديگر بايد بتوانند از قابليتهاي آن بهرهمند شود. ظاهرا اينطور که دستاندکاران مونو توضيح ميدهند ، برنامه نويسان اين پروژه با برنامهنويسان مايکروسافت مراوداتي دارند و در جلسات مشترک ECMA پشت يک ميز مينشينند و حتي برخي از برنامهنويسان ويندوز خود در جلوبردن پروژه مونو مشارکت دارند.
نکته جالب اينست که برنامهنويسان هردو پروژه اعتقاد دارند [a href=http://www.southern-storm.com.au/pnet_faq.html#q12_4]زبان سي شارپ نسبت به جاوا برتريهايي دارد[/a] و اين نکته را پنهان نميکنند اما برخلاف مونو ، ديدگاه dotGNU نسبت به نقش سي شارپ توام با شک و ظن بسيار در استراتژي پشت پرده مايکروسافت است. dotGNU شديدا از گسترش و اقبال عمومي نسبت به سي شارپ در محافل دانشگاهي نگران است و آن را توطئه خزندهاي ميداند که بايد با آن به مقابله برخاست. dotGNU رسالت خود را اين ميداند که با ارائه آلترناتيوي در مقابل داتنت مايکروسافت ، مانع از اين شود که شايستگيها تکنيکي پلاتفرم مايکروسافت از سوي اين شرکت مورد سوء استفاده قرارگيرد. dotGNU از چند جنبه به اهداف مايکروسافت در دنبال کردن پلاتفرمداتنت مشکوک است. چکيدهاي از اين نگرانيها را ميتوانيد از [a href=http://www.dotgnu.org/danger.html]اين صفحه[/a] مطالعه کنيد. همچنين موضعگيري dotGNU عليه Rotor را [a href=http://www.southern-storm.com.au/pnet_faq.html#q11_3]از اينجا[/a] مي توانيد ببينيد. محور اصلي نگرانيهاي dotGNU اينست که پشت اين ايده مايکروسافت که معتقد است دوران Open Computing رو به پايان است ، توطئهاي وجود دارد. منظور مايکروسافت از بيان نظريه مذکور اينست که ((عصري که در آن اطلاعات ميتوانستند آزادانه و عريان در شبکههاي اطلاعاتي به گردش درآيد روي به پايان است)) زيرا گردش عريان اطلاعات امنيت اطلاعات را نقض مي کند و مورد سوء استفاده هکرها و خرابکاران قرار ميگيرد. در نتيجه صنعت آيتي به سمتي ميرود که اطلاعات به گردش درآمده در شبکه جهاني اطلاعات هرچهبيشتر به صورت رمزنگاري شده (encrypted) و تحت پروتکلهاي امن به جريان درآيد. به همين دليل مايکروسافت تز Trusted Computing را در مقابل Open Computing مطرح کرده است. حرف اصلي dotGNU اينست که تز Trusted Computing ممکن است از سوي دولتها و نهادهاي صاحب قدرت مورد سوء استفاده قرار گيرد و به ابزاري زيربنايي براي کنترل جريان اطلاعات و نقض آزادي گردش اطلاعات درآيد. dotGNU همچنين به چگونگي پيادهسازي فناوري WebServices در پلاتفرم داتنت مايکروسافت انتقاد دارد و معتقد است معماري کنوني سروسهاي وب که متکي بر server است سبب ميشود اطلاعات حياتي مشترياني که کسب و کارشان منوط و وابسته به اين سرويسهاي وب است ، داخل server شرکت ارائه دهنده خدمات webservice به اسارت درآيد.
اما با اين احوال به نظر ميرسد پروژه مونو از لحاظ تکنيکي موفقتر و جلوتر از dotGNU است. به عنوان مثال خود dotGNU [a href=http://www.southern-storm.com.au/pnet_faq.html#q12_2]اعتراف ميکند[/a] که هنوز موفق به پيادهسازي عملي ASP.NET نشده است (البته پروژه [a href=http://dotgnu.org/dgee.html]DGEE[/a] نقش مكمل dotGNU را در اين زمينه ايفا مي كند) درحالي که مونو ادعا ميکند با نصب چارچوب مونو روي پلاتفرمهاي يونيکس و لينوکس و استفاده از نرمافزار Apache امکان [a href=http://www.go-mono.com/faq.html#asp]اجراي ASP.NET[/a] روي اين سيستم عاملها وجود دارد.
اولین امتياز دهنده به این مطلب باشید
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5