What is Service Oriented Architecture (SOA)?

Tuesday, August 19. 2008

Confused with term SOA?

I'll help you understand the basic principles that stand behind what we call a Service Oriented Architecture. If you just want a simple, one sentence explanation, here it comes: SOA is a new approach to building IT systems, where logic is decomposed into smaller, distinct units.

Those units are called services. Seems like nothing new, but what makes SOA special is the set of design principles. Before we discuss the principles of SOA design, let just make it clear what really defines a service.


Continue reading "What is Service Oriented Architecture (SOA)?"

Some Free Web Services

Monday, August 11. 2008

There are many articles on how to write and deploy your own Web Service. Here, I will show you where you can find Web Services that other people have created and made public.

Many interesting Web Services that you can use free of charge can be found at: http://www.webservicex.net http://www.wsoogle.com. This may be particularly interesting when you are developing Web applications. For example, you would like to have some kind of currency conversion in your Web app. However, exchange rates are different every other day and you would certainly want to automate the process of their updating. One way to solve this problem is to use an existing Web service and don't think about the rates at all! A good example of what you might need is here. Just supply the service with two strings that represent currencies and you get back an exchange rate as a double!

Other services you may find interesting are different types of calculators, credit card checkers, translators, etc... These will certainly help you develop your application, no matter which tools and programming languages you use. However, be careful and note that all those Web Services are not under your control. If some change to their interface or implementation occurs, your application may change its behavior! In any case, there is no doubt that you will find some of them useful. You may also get an idea to build your own Web Service that many people would like to use. Good luck!

Windows Communication Foundation

Friday, August 1. 2008

.NET Framework 2.0 relies on several distributed programming technologies. Maybe you are already familiar with Web & Enterprise Services, .NET Remoting, WSE... All these technologies have some advantages and drawbacks that make them more or less suitable for performing certain tasks.

For example, when creating an application that is supposed to be distributed over the Internet, on different machines with different operating systems, Web Services are what we need, because they offer an elegant and unambiguous way for different kinds of machines to communicate.

If our distributed application is going to run in company LAN (or maybe even just on local machine), on computers that all run .NET Framework, interoperability is not really a problem, but we would like to optimize the communication and get the best possible performance. Here, .NET Remoting is the way to go.

However, there are situations when it is necessary to combine different technologies in order to accomplish a given task. Although this isn't impossible, it may be expensive, hard and tricky to develop and maintain such a system. As a response to such situations, .NET 3.0 offers (and .NET 3.5 improves) something called Windows Communication Foundation (or simply WCF). The basic idea behind WCF is to integrate all distributed technologies that existed in older versions of .NET framework and put them under one roof, so they can be used easily and in the same fashion together.

Furthermore, WCF is a natural foundation for applications that follow SOA (Service Oriented Architecure) principles. For example, the concept of service contract is depicted as an interface. You define and implement a service contract simply by creating and implementing an interface! If you would like to take a deeper look at WCF and its possibilities, this MSDN page is a good place to start: Have fun!

Creating and using custom SOAP headers in Visual Studio 2005

Monday, July 28. 2008

Web Services are a cool, platform and language independent way for applications to communicate. You may already know that peers use SOAP messages, based on XML, to make the communication possible. In this article we will learn how to create and use custom headers in our Web Services. We are going to use Visual Studio 2005 and C#, but things are not much different in VS2008.

The SOAP envelope consists of body and header parts. While the body element is mandatory and has a predefined structure, the header is entirely optional and you are free to use it any way you like.

For example, let’s try to make some kind of authentication header – one that contains a username and password.


Continue reading "Creating and using custom SOAP headers in Visual Studio 2005"