Friday, November 22, 2013

Fundermentals of Diameter - Intorduction to AAA Protocol

I recently got my hands on in implementing few applications which exchanged information through diameter protocol.Mainly it was done as a POC (Proof of Concept) to illustrate on the ability of making diameter transactions through the WSO2 ESB. So let me share a little bit of my experience with you.

 

AAA Protocol 

Diameter is a  AAA (Authentication,Authorization, Accounting ) protocol used to manage networking resources/services and its usage.

Authentication 

Authentication is the process where the user sends his/her access credentials proving the identity to a Remote Access Server (RAS) that validates it.  The authentication process would validate the user information with different other servers/directories.

Authorization 

The authenticated user will have certain attributes defined in the RAS which explains the QOS (Quality of Service), IP based validations ect :-

Accounting   

The access to the network will be granted to the user through the Network Access Server (NAS). Once the network access is being granted to the user, the RAS will communicate back and forth with the NAS providing the following information,

  •   'Start' giving access to a particular user network access
  •   'Stop' giving access to the user 
  •   Periodically it will exchange information back and forth between, NAS and RAS indicating the status of the current user session, The NAS will trigger an indication to the RAS when it stops the network access to a user session. 

The image below summarizes how AAA protocol is being adapted in a typical network environment. 

                              
Await for my next set of articles, where i would explain the implementation steps in detail as to how diameter can be used in AAA transactions and how WSO2 ESB can be used to connect with diameter servers.   

Tuesday, October 22, 2013

Drilling Into the ESB - Part 1 (Fundementals, SOA and ESB Applicability)

Well i was a bit quick in my previous post on explaining a bit more of what the ESB does, but better late than never!

So here we go,
 
An ESB could be better validated through pin pointing to its usage when it comes to Service Oriented Architecture (SOA).

SOA is a standard which will allow business applications to be defined in a Modular, Distributed and a loosely coupled fashion. 

Why Settling For SOA ?  


The current industrial systems are complexed, having one function doing it all is not something to be satisfied of. SOA simply provides the ability to componentized business functionality and expose it as services which adheres to well defined service standards. 

In return, it makes the business functionality to be easily maintained, tested and importantly to be reused. 

ESB Applicability  


That was a short introduction to SOA ! 

once the enterprise adopts to the SOA standards, it drives away from relying on a typical monolithic system and becomes more heterogeneous. The clear challenge now is that the systems are now componentized and requires connectivity in-between them. 

Managing SOA without an ESB


I'll eventually discuss the architectural differences between the ESB and the other alternatives. But for now... 
Theoretically speaking is there's no ESB to manage your system.. your whole system might end up becoming a flop !

You could find out why by vising the following website which will take you through a Webinar,

http://wso2.com/library/webinars/2013/05/enterprise-integration-wso2-esb-introduction-fundamentals/





 

 

 

Monday, October 7, 2013

Writing a Mock Service using WSO2 ESB

The following is WSO2 ESB configuration which will allow sending a mock response back to its caller.

<proxy xmlns="http://ws.apache.org/ns/synapse"
      name="testMockService"
      transports="https,http"
      statistics="disable"
      trace="disable"
      startOnLoad="true">
  <target>
     <inSequence>
        <log level="custom">
           <property name="MockService" value="Service Invoked"/>
        </log>
        <log level="full"/>
        <payloadFactory>
           <format>
               <response>
                    <response1>Sample Test Response</response1>
                    <info>http://www.wso2.com</info>
                 </response>
           </format>
           <args/>
        </payloadFactory>
        <header name="To" action="remove"/>
        <property name="RESPONSE" value="true" scope="default" type="STRING"/>
        <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>
        <send/>
     </inSequence>
  </target>
  <description/>
</proxy>

Note the following characteristics of the configuration,


      <payloadFactory>
           <format>
               <response>
                    <response1>Sample Test Response</response1>
                    <info>http://www.wso2.com</info>
                 </response>
           </format>
           <args/>
        </payloadFactory>


The above configuration snippet will allow constructing a new payload which should be sent, the xml elements listed between the <format/> tag will construct the new payload.

Note the following three properties,


        <header name="To" action="remove"/>
        <property name="RESPONSE" value="true" scope="default" type="STRING"/>
        <property name="NO_ENTITY_BODY" scope="axis2" action="remove"/>

The above will allow the message to be set back to be transmitted to the caller who sent the message,

using the <send /> will result in sending the constructed message back to the caller.  







Tuesday, September 25, 2012

Impact of ESB (Enterprise Service Bus)


Today's tech explosive I would like to discuss is on how an ESB could make an impact in your web life. Last few days I had the opportunity of getting hands on experience with this software architecture model which I found throughly amazing and really cool.

What is an ESB?

The first question I had when I kept my hand on the ESB was, what is this all about ? Based on the experience I got through tampering with this software architecture, ESB plays a major role in large enterprise systems.

When an enterprises work flaw is massive and complicated having an Independent system working in isolation is not practical. Therefore, the work should be delegated among different systems which should compose a distributed system architecture. Having number of systems itself would not be adequate, the fact is apparent that there should be a middle man that should link each of these systems together and maintain connectivity between them. ESB becomes the life saver at this point.

Example use of an ESB

To elaborate more on the potential of ESB let me take a real world scenario where ESB becomes a life saver. Let's take a scenario of a house hold bugler alarm system. During an intrusion the following procedure should happen concurrently.

  • An intrusion message should be sent to the house owner's mobile device
  • Authorities (Police) should be notified
  • The alarm company should be notified
The above scenario involves integration and communication among three main systems. This integration can be successfully accomplished through an ESB.

WSO2 ESB

The above discussed is one main scenario that an ESB offers to its clients. There's much more capability that it can do such as load balancing and providing fail over support, task scheduling, message processing and much more. WSO2 ESB is an open source light weight ESB which I found really fascinating. More information can be referred from http://wso2.com/products/enterprise-service-bus/.

I encourage you all to try it for yourself. It's grate and you won't regret it.

Sunday, September 9, 2012

Setting up Terminals: Developer Friendly Environment


Working with terminals is quite interesting and quite straight forward , today's tech explosive I encountered was on configuring the Ubuntu (perhaps will be applicable for almost all the linux tools) terminal for quick access and for swift development. These are some of the additional softwares and steps which can be used for interactive terminal configuration.

Running Multiple Terminals Simultaneously

Terminator is an interactive tool which will allow multiple terminals function at the same time. More information on this tool can be refereed from http://www.apt-get.co.uk/apt_get_terminator.html.

In summary the tool can be download from execution of the command  'apt-get install terminator' 
in the Ubuntu console.

Smooth Navigation

Navigation between the directories from the terminal can be quite a tedious task for quite lengthy directory structures. 'nautilus-open-terminal' is an interesting tool which will allow a user to open the terminal from a navigated directory, simply through right clicking the mouse and opening up the terminal. More information of the tool can be refereed from http://www.linuxnix.com/2010/01/ubuntu-right-click-to-open-a-terminal.html.

The application can be downloaded 'apt-get install nautilus-open-terminal', once downloaded re start the machine.

Simultaneous Action with Smooth Navigation

As discussed through the above topics, for a developer friendly environment it requires integration of both the features. The good news is that is it's possible !
This can be done through installation of a package nautilus-actions by execution of sudo apt-get install nautilus-actions After the installation run configuration tool nautilus-actions-config-tool Once the configuration is executed add new item, Name it "Open with Terminator..." In the command tab
full path : /usr/bin/terminator
parameters : --working-directory=%d/%b

Then logout and login.. You are good to go !
More information can be referred from http://askubuntu.com/questions/76712/setting-nautilus-open-terminal-to-launch-terminator-rather-than-gnome-terminal