سید مصطفی حسینی

 معمار نرم‌افزار و مهندس فرآیند RUP

Software Architect & RUP Process Engineer

سید مصطفی حسینی

صفحه شخصی |  RUP چیست؟ |  فازهای RUP |  دیسیپلین‌های RUP |  نكته‌ها |  دوره آموزشی RUP |  ابزارهای Rational |  تكنولوژی‌های نرم‌افزاری

 

  تكنولوژی‌های نرم‌افزاری
آشنایی با تكنولوژی‌های نرم‌افزاری قابل استفاده برای ارائه یك معماری خوب و كارا ضروری است. تكنولوژیهای رایج نرم افزاری امروز عمدتا به دو خانواده .Net و J2EE تقسیم ‌می‌شوند، اولی (J2EE) توسط شركت Sun بصورت یك استاندارد جهت پیاده سازی سیستمهای چند لایه تعریف شده كه توسط شركتهای معتبری مانند IBM، Oracle، Bea و Borland حمایت و پیاده سازی شده است در مقابل .Net یك پلتفرم نرم افزاری تجاری از شركت Microsoft می‌باشد كه بصورت گسترده‌ای مورد استفاده قرار می‌گیرد.
  J2EE
مروزه، توسعه‌دهندگان بیشتری خواهان نوشتن نرم‌افزارهای کاربردی توزیع‌یافته با مقیاس کلان هستند و در این‌کار، نیازمند سرعت و قابلیت اطمینان تکنولوژی‌های سمت سرور هستند. برای کاهش هزینه طراحی و توسعه نرم‌افزارهای کاربردی، سکوی J2EE یک روش مبتنی بر کامپوننت برای طراحی، توسعه، سرهم بندی و اجرای نرم‌افزارهای کاربردی در مقیاس کلان ارائه کرده است. این سکو، یک مدل توزیع‌یافته چندلایه‌ای عرضه می‌کند که دارای کامپوننت‌های با قابلیت استفاده مجدد است، یک مدل امنیتی یکپارچه دارد، کنترل‌های transaction قابل انعطاف دارد و می‌تواند Web Service ها را از طریق پروتکل استاندارد XML پوشش دهد.
با استفاده از J2EE، یک توسعه‌گر نه تنها می‌تواند به سرعت، راه‌حل‌های ابداعی تجاری مناسب برای بازار ارائه دهد، بلکه این راه‌حل‌های مبتنی بر کامپوننت و مستقل از سکو، به محصولات و رابط‌های برنامه‌های کاربردی هیچ تولید‌کننده‌ای وابسته نیستند. در حقیقت، مشتریان و تولیدکنندگان نیز از آزادی در انتخاب محصولات و کامپوننت‌هائی که بیشتر بتواند نیازهای تجاری و تکنولوژیکی آنها را برطرف سازد، احساس رضایت می‌کنند.
سکوی J2EE، از یک مدل چند‌لایه‌ای توزیع‌یافته برای نرم‌افزارهای کاربردی با مقیاس کلان استفاده می‌کند. منطق برنامه کاربردی به یک سری کامپوننت شکسته می‌شود که می‌توانند بر روی چندین ماشین مختلف قرار گیرند.
  • کامپوننت‌های لایه کاربر بر روی ماشین کاربر اجرا می‌شوند.
  • کامپوننت‌های لایه Web بر روی سرور J2EE قرار دارند.
  • کامپوننت‌های کاری نیز بر روی سرور J2EE قرار دارند.
  • نرم‌افزارهای سیستم اطلاعاتی سیستم که بر روی سرور EIS قرار دارند.
J2EE
  • کامپوننت‌هائی که توسط J2EE معرفی شده‌اند عبارتند از : برنامه کاربردی client و applet ها که بر روی ماشین client اجرا می‌شوند.
  • Servletهای جاوائی و JSPها که بر روی سرور اجرا می‌شوند.
  • کامپوننت‌های EJB که اجزای منطق کاری هستند و بر روی سرور اجرا می‌شوند.
  • کامپوننت‌های J2EE توسط زبان برنامه‌نویسی جاوا نوشته و کامپایل
  Microsoft .Net
دات نت ، پلات فرم جدید ماکروسافت بمنظور تحقق نظریه : " نرم افزار بعنوان سرویس " ، است . دات نت یک محیط پیاده سازی است که بکمک آن می توان اقدام به ایجاد و بکارگیری نرم افزار و نسل جدیدی از عناصر موسوم به " سرویس های وب " ، نمود. تمامی محصولات اصلی ماکروسافت از ویژوال استودیو دات نت تا ویندوز و نهایتا" مجموعه آفیس ، متاثر از پلات فرم فوق شده و خواهند شد . دات نت به پیاده کنندگان این امکان را خواهد داد که با زبان برنامه نویسی مورد علاقه خود ، اقدام به پیاده سازی برنامه ها نمایند. ویژگی ( پتانسیل ) فوق از طریق معرفی Common Language Runtime (CLR) ، میسر شده است .
دات نت، اولین پلات فرم طراحی شده از صدر تا ذیل با در نظر گرفتن واقعیتی با نام اینترنت است. دات نت از یک ماشین مجازی خاص در این زمینه استفاده می نماید . ماهیت ماشین مجازی فوق ، بگونه ای است که از API ویندوز فاصله و در این رابطه از یک کتابخانه کلاس استفاده می نماید که می توان به جرات این ادعا را داشت که تاکنون نظیر آن، ایجاد نشده است. امکان استفاده از زبانهای متعدد برنامه نویسی، وجود خواهد داشت. معماری دات نت، امکان ارتباط بین زبانها را بسادگی فراهم خواهد کرد. دات نت، یک رویکرد جدید در رابطه با پیاده سازی نرم افزار را مطرح نموده است. نگاه به دات نت ، عمدتا" بصورت سیستم های توزیع شده است.
با استفاده از XML ،امکان اجرای توابع بر روی کامپیوترهای متفاوت یک سازمان ویا جهان فراهم و جلوه ای زیبا در همیاری بمنظور اجرای یک برنامه، به نمایش در خواهد آمد. از این منظر ، سیستم ها از سرویس دهندگان تا سیستم های بدون کابل، قادر به اشتراک پلات فرم عمومی یکسانی خواهند بود. با استفاده از نسخه های خواهد شد.
دات نت ، بمنظور طراحی و پیاده سازی برنامه های سنتی نیز راهکارها و امکانات خواهد شد. دات نت ، بمنظور طراحی و پیاده سازی برنامه های سنتی نیز راهکارها و امکانات مناسبی را ارائه تا از این طریق امکان پیاده سازی و بکارگیری این نوع از نرم افزارها، بسادگی انجام گیرد . برخی از تکنولوژی ها ی ارائه شده در دات نت نظیر فرم های ویندوز، تلاشی در این راستا است.

Visaul Studio.Net
Visaul Studio.Net جدیدترین ابزار برنامه نویسی شركت Microsoft و شكل گرفته بر اساس فناوری .NET، رویكرد جدید Microsoft برای تولید نرم افزار است و تمام برنامه های این شركت برای آینده، بر مبنای آن خواهد بود.
ریشه .NET به نشانی های " .NET" در اینترنت بر می گردد. از نظر مفهوم، .NET یك فناوری جدید است كه باعث سهولت هر چه بیشتر انجام بسیاری از كارهای سخت گذشته شده است. خصوصاً ایجاد برنامه های قابل اجرا در شبكه با .NET، بسیار ساده شده است. اگر از دید برنامه نویسان نگاه كنیم، .NET یك سطح تجرید (Abstract) بالاتر برای برنامه سازی است.

مروری بر Net Framework.
Net Framework.، تمامی لایه های پیاده سازی نرم افزار را از سطح سیستم عامل به  بالا، تحت پوشش قرار می دهد. Framework فوق، سطحی مناسب وقدرتمند از ارتباط و همبستگی بین تکنولوژی  Presentation  ، تکنولوژی های Component و تکنولوژی های  Data  را ارائه می نماید ( نظیر این ارتباط و همبستگی تاکنون در پلات فرم ویندوز مشاهده نشده است) .  معماری فوق ، امکان طراحی و پیاده سازی برنامه های مبتنی بر اینترنت و محیط های Desktop ، را بسادگی فراهم و نیازهای هر گروه از نرم افزارهای فوق را بخوبی جواب می دهد. اجزای اصلی Net Framework. در شکل مقابل نشان داده شده است . Net Framework. از لایه  پائین با عملیاتی نظیر مدیریت حافظه آغاز و بسمت بالا بمنظور ارائه اینترفیس های برنامه ها و کاربران ، دنبال  می شود. در بین لایه ها ، لایه های سیستمی دیگر که هر یک دارای پتانسیل های خاصی برای پیاده کنندگان می باشند ، وجود دارد.
 CLR) Common Language Runtime) ، بمنزله قلب فریمورک دات نت محسوب و engine لازم بمنظور ارائه قابلیت های کلیدی را ارائه می نماید . CLR ، شامل عناصر اساسی دیگری نظیر:  (Common Type System (CTS ، است. علاوه بر مدیریت حافظه ، CLR ، مراجعات به اشیاء و عملیات Garbage Collection را نیز انجام می دهد .  در لایه میانی ، ما شاهد نسل جدیدی از سرویس های استاندارد نظیر ADO.NET و XML می باشیم .سرویس های فوق، تحت کنترل Framework بوده و امکان بکارگیری آنها بصورت جامع و استاندارد در بین تمامی زبانها ، فراهم می گردد. بالاترین لایه، شامل اینترفیس های برنامه و کاربر است. فرم های ویندوز، روشی جدید بمنظور ایجاد برنامه های Desktop مبتنی بر win32  می باشند. فرم های وب، یک رابط کاربر مناسب برای برنامه های  مبتنی بر وب را ارائه می نمایند.
سرویس های وب ، مکانیزمی بمنظور ارتباط برنامه ها از طریق اینترنت و با استفاده از SOAP، می باشد. سرویس های وب، قابل مقایسه با عناصر COM و DCOM بوده با این تفاوت مهم که در این راستا از تکنولوژی های متعدد اینترنت، استفاده می گردد. فرم های وب و سرویس های وب ،  اینترفیس اینترنت  دات نت را تشکیل و پیاد ه سازی آنان از طریق بخش دیگری در فریمورک دات نت که  ASP.NET ، نامیده می شود ، محقق می گردد. پتانسیل های موجود در هر لایه فریمورک دات نت ، توسط هر یک از زبان های سازگار با دات نت، قابل استفاده خواهد بود. در پایان لازم است به این نکته اشاره گردد که  در این رابطه ( Net Framework. ) می توان از اینترفیس های مبتنی بر متن ( کاراکتری) نیز استفاده کرد. این نوع برنامه ها اصطلاحا" Console Application، نامیده می شوند .
Microsoft .Net Framework

مزایای استفاده از Net Framework.
در آغاز پیاده سازی برنامه های مبتنی بر ویندوز، تمامی برنامه های نوشته شده بمنظور استفاده از API ، از C و یا ++C استفاده می کردند. با مطرح شدن ویژوال بیسیک و سپس اینترنت، پیاده کنندگان مجبور به سفارشی نمودن ( پیاده سازی نسخه هائی خاص ) برنامه های C++ ، C، برنامه های ویژوال بیسیک و یا ASP بودند.
با استفاده از Net Framework.، می توان با اتکاء به مهارت های موجود، اقدام به آفرینش هر نوع نرم افزاری کرد. انتخاب Net Framework. بمنظور پیاده سازی برنامه ها، مزایای زیر را بدنبال خواهد داشت :
  • مبتنی بر استانداردهای وب . فریمورک دات نت، بطور کامل تکنولوژی های موجود در اینترنت نظیر : HTML , HTTP,SOAP,XSLT,XPath و سایر استانداردها را حمایت مینماید.
  • طراحی مبتنی بر یک مدل یکسان . از پتانسیل های یک کلاس دات نت ، می توان در هر یک از زبانهای حمایت شده در دات نت و یا مدل برنامه نویسی ، بخوبی استفاده کرد . بنابراین می توان ، بخش هائی از کدهای نوشته شده را در برنامه های متعدد استفاده کرد (برنامه های ویندوز، وب ، سرویس های وب XML ) .
  • پیاده کنندگان بسادگی قادر به استفاده از آن می باشند. در فریمورک دات نت ، کد ، بصورت Namespace های سلسله مراتبی و کلاس ها ، سازماندهی می گردد . فریمورک دات نت یک Common Type System)CTS) را بعنوان سیستم نوع یکسان ، ارائه نموده که توسط هر زبان سازگاز با دات نت، قابل استفاده خواهد بود .در سیستم فوق ، تمامی عناصر زبانها بصورت شی می باشند. این اشیاء قادر به استفاده توسط هر برنامه مبتنی بر دات نت و نوشته شده توسط هر زبان مبتنی بر دا ت نت ، خواهند بود .
  • کلاس های توسعه پذیر . ماهیت سلسله مراتبی فریمورک دات نت، برای پیاده کنندگان مخفی نخواهد بود .در این راستا می توان به کلا س ها دستیابی و آنها را توسعه داد( مگر اینکه آنها حفاظت شده باشند ). در این زمینه امکان پیاده سازی توارث از نوع Cross - Language ، نیز وجود خواهد داشت .

Sayyed Mostafa Hosseyni
RUP Process Engineer & Software Architect
Phone : 0912 275 37 87
E-Mail : smhoseyni@gmail.com
www.smhoseyni.com
Creative Commons License