تبليغاتX
Softwaring

Softwaring

Software Engineering, Process and Management

Developing with a Software Factory

Software factory–based application development addresses the problem of traditional application development where applications are developed and delivered without taking advantage of the knowledge gained and the assets produced from developing similar applications. Many approaches, such as training, documentation, and frameworks, are used to address this problem; however, using these approaches to consistently apply the valuable knowledge previously gained during development of multiple applications can be an inefficient and error-prone process.

Software factories address this problem by encoding proven practices for developing a specific style of application within a package of integrated guidance that is easy for project teams to adopt. Developing applications using a suitable software factory can provide many benefits when compared with conventional software development approaches:

  • Consistency. Using a software factory to build multiple instances of a software product line (a set of applications that share features and architecture) makes it easier to achieve consistency. This simplifies governance and lowers maintenance and training costs.
  • Quality. Using a software factory makes it easier for developers to learn and implement proven practices. Developers spend less time writing boilerplate code and spend more time creating features that are unique to each application. This reduces the likelihood of the application having design flaws or code defects. Applications developed using a software factory may also be verified before deployment; this ensures that factory-specific best practices were followed during development.
  • Productivity. Using a software factory streamlines and automates the prescribed application development activities in the following ways:
    • It reuses software assets, particularly extensible architecture baselines, application frameworks, and application blocks.
    • It provides contextualized and automated guidance.
    • It generates code from models that represent abstractions of the application elements and mechanisms.

These approaches simplify, automate, or even eliminate many routine development tasks. By using a software factory, developers can concentrate on higher-value activities; this decreases the overall development time and cost.

Ref: Patterns & Practices

+ نوشته شده در  دوشنبه 18 آذر1387ساعت 11:6  توسط علی نوبر  | 

SOAP چیست؟

 نمی دانم چرا هر وقت این کلمه به گوش یا چشمم می خورد یاد حمام و پاکیزگی می افتم! اما خب نرم افزار خیلی از مفاهیم را دستخوش تغییر کرده است. جالبتر اینکه پس از جستجوی بسیاری از کلمات در اینترنت که معنی اصلی آنها صدها سال قدمت دارد، اولین یافته ها همانا معانی عجیب و غریب آن کلمات در صنعت محترم نرم افزار است. کاربر بخت برگشته ای را تصور کنید که برای یافتن صابون مورد علاقه خود کلمه Soap را در گوگل جستجو می کند و در دریایی از کلماتی چون XML، Protocol و HTTP غرق می شود!

 SOAP  مخفف Simple Object Access Protocol است. SOAP یک پروتکل مبتنی بر XML است و به منظور انتقال اطلاعات (درخواست و پاسخ) در شبکه ها (خصوصا اینترنت) به کار می رود. به عبارت دیگر SOAP چیزی بیش از یک قرارداد مبتنی بر XML نیست که فرستده و گیرنده باید قالب آنرا رعایت کنند تا بتوانند با یکدیگر تعامل داشته باشند. یکی از ویژگی های اصلی SOAP این است که Firewallها مانع آن نمی شود.

ویژگیهای SOAP:

1.       یک پروتکل ارتباطی است

2.       به منظور تعامل میان برنامه ها و/یا سرویس ها به کار می رود

3.       مستقل از Platform است

4.       مستقل از زبان است

5.       مبتنی بر XML است

6.       ساده و قابل توسعه است

امروزه برنامه ها با استفاده از Remote Procedure Calls (RPC) با یکدیگر تعامل می کنند اما HTTP برای این منظور طراحی نشده است. RPC دارای مشکل سازگاری و امنیت است و Firewall ها و Proxy Server ها عموما این نوع از ارتباط را مسدود می کنند. راه حل بهتر برای این گونه ارتباط، استفاده از بستر HTTP است که توسط طیف وسیعی از سرورها و مرورگرها پشتیبانی می شود. SOAP به منظور ایجاد این گونه ارتباط بروی بستر HTTP به وجود آمده است.

یکی از مهمترین مزایای SOAP استقلال آن از زبان برنامه و Platform است. به این مفهوم که SOAP می تواند پروتکل مشترک ارتباطی میان دو برنامه با زبان های مختلف (مثلا .Net و PHP) و/یا دو Platform متفاوت (مثلا Windows و Linux) باشد.

معایب SOAP:

  • به دلیل طولانی بودن ساختار XML آن، در مواردی که پیام ارسالی طولانی باشد کند عمل می کند.
  • نظر به اینکه سادگی از اصول اولیه SOAP است، این ویژگی منجر به قربانی شدن امنیت و قابلیت اعتماد شده است.
  • به دلیل استفاده SOAP از HTTP، Firewall ای که صرفا برای مرور وب طراحی شده است به سادگی اجازه انتقال HTTP Packets را نمی دهد.

 می خواستم ساختار SOAP را در اینجا نمایش دهم که متوجه شدم بلاگفا این ساختار را به جای نمایش parse می کند و به جای ساختار، خروجی آنرا نمایش می دهد! در صورت علاقه مندی می توانید ساختار آنرا در سایت http://www.w3.org مشاهده کنید.

  

References:

1.      http://www.w3schools.com/soap

2.      http://www.w3.org/TR/2000/NOTE-SOAP-20000508

3.      http://en.wikipedia.org/wiki/Simple_Object_Access_Protocol

4.      http://www.radcom.ir/kb-soap-fa.html

5.      E-Book: Pro WCF: Practical Microsoft SOA Implementation By: Chris Peiris & Dennis Mulder, Apress publication

 

+ نوشته شده در  پنجشنبه 7 آذر1387ساعت 7:24  توسط علی نوبر  |