System Integration Topologies – An Analysis

March 1, 2011 Leave a comment

In Computer World, Topology means The arrangement in which the nodes of a LAN are connected to each other.

Three popular integration topologies in IT world are

  • point-to-point (P2P)
  • Hub-and-Spoke  (H&S)
  • Bus (BUS)

Architecture

P2P – connects two endpoints directly without any mediator. This is the simplest and easiest of all three topologies to implement and also the one with higher maintanence cost.

H&S – connects two endpoints through a mediator, called message broker, who is responsible for routing, endpoint registration and transformation.

BUS –  provide a common communication mechanism between disparate systems. This is established using agreed-upon message schemas, common command messages and shared infrastructure for sending bus messages to final destinations.

Installation Effort

P2P – Zero: Nothing to install

H&S – Less: Need to install the broker

BUS – Moderate: Bus Architecture is more complicated than broker

Maintenance & Administration

P2P – Difficult

H&S – Easy because of centralized control

BUS – Complex depending upon integrated systems

Scalability

P2P – Not scalable

H&S – Limited by the hardware of hub box

BUS – highly scalable

Standards Based

P2P – No

H&S – Mostly standards based but may use proprietary formats

BUS – Yes

SOA

P2P – No

H&S – Can be implemented so

Bus – Yes

Flexibility

P2P – Expensive to add new solutions

H&S – Moderate

Bus – Easy and less expensive to add new solutions

Loose Coupling

P2P – No

H&S – can be done

BUS – Yes

Centralize Automation of Business Process

P2P – Not Possible

H&S – Can be done

BUS – Yes

Long term maintanence

P2P – high

H&S – moderate

Bus – low

Integration Plan

P2P – Not necessary

H&S – Yes

BUS – Detailed integration plan is necessary

Platform Independence

P2P – No

H&S – May be

Bus – Yes

Monitoring, Auditing & Logging

P2P – Difficult

H&S – Easy

BUS – Easy

Reliability

P2P – no single point of failure

H&S – Hub is critical and should be up and running 24×7

Bus – Bus is critical

Change / Configuration Management

P2P – No

H&S – Possible

Bus – Yes

Security

P2P – Difficult to impose as there is no centralized control

H&S – Easy

BUS – Easy

Other Features

Feature Name: P2P | H&S | BUS

Use of a standard infrastructure:  No | Possible | Yes

Use of a standard logical data definitions: No | May be | Yes

Process flow capability: No | Yes | Yes

Ease of deployment: Yes | Moderate | Yes

Content based routing: No | Yes | Yes

Guaranteed delivery: No | Possible | Yes

Asynchronous delivery: No | Possible | Yes

Transaction support:  No | May be | Yes

Try our ridiculously simple Agile PM Tool

Different Architects in IT Industry

February 18, 2011 Leave a comment

There are too many architect roles in software world and the difference is often blurry. When a developer enters the world of Architect, he is often overwhelmed and confused with the choices. The aim of this article is to make the differentiation clear. As a first step lets get the list complete.

  • Enterprise Architect (EA) – takes a company’s business strategy and defines an IT systems architecture to support that strategy. EAs must understand a company’s business and be able to dive deeply into technology issues.
  • Integration Architect
  • Solutions Architect
  • Business Architect – models new business processes, new customer interactions and new outreach methods.
  • Application Architect
  • IT Architect
  • Infrastructure Architect
  • Network Architect
  • System Architect
  • Software Architect
  • Database Architect
  • Technical Architect
  • Security Architect

Please check back here for more information.

Have you heard of any other architects? Let me know.

Indispensable Enterprise Architect

February 9, 2011 Leave a comment

EA who focuses on clearly defined goals, closely aligned with current business requirements and practice using the current culture with clear progress metrics is indispensable. In other words, Indispensable EA is a half entrepreneur and half technologist.

Categories: architecture

Are you a Good Architect?

February 8, 2011 5 comments
  • Do you understand the problems?
  • Do you understand the scale of those problems?
  • Do you think outside the box?
  • Do you closely monitor your competitors?
  • Are you vigilant about your market?
  • Do you read technical blogs, magazines, news regularly?
  • Does new product or technology make you excited?
  • Do you anticipate and get motivated with changes?

Good Architect’s solution is not necessarily technically sound but will meet business requirements accurately and will adapt when business requirements change which in most cases will.

Try our ridiculously simple Agile PM Tool – Pairworks

Categories: architecture

When does CMS turn into an Inbound Marketing Platform?

February 8, 2011 Leave a comment
  • New content created, should automatically be published to twitter, facebook, linkedin or other social media sites
  • Provide control on which social media sites to target
  • Dashboard clearly indicating our progress
  • Track the facebook fans
  • Track the linkedin followers
  • Pull in analytics data
  • Track the delicious bookmarks
  • pull currently popular content related to our industry
  • when you create a webinar it should notify the webinar subscribers.
  • when you create a podcast it should notify the podcast subscribers
  • when you notify the webcasts, it notify the webcast subscribers
  • Post new PPT slides to scribd.com and other document sharing sites
  • Post new content url to social bookmarking sites

Have you tried our ridiculously simple Agile PM tool? – Pairworks

Categories: Uncategorized

Ruby Variable Scopes

September 27, 2010 Leave a comment

local
_local_too
@instance
@@class
$global
CONSTANT

Categories: tech

Saasy: Rails SaaS and SSO solution – up in no time

September 27, 2010 4 comments

Following steps will get your saasy solution up.

  1. get saasy from github, this is a rails app, lets call is sso_app
  2. create new rails app, lets call it our_app, this will be using sso_app to login
  3. install restful-authentication plugin for our_app from github using “script/plugin install …”
  4. run in our_app,  the command, “generate authenticated user sessions …”, provided in readme of restul-authentication plugin
  5. install plugin act-as-a-state-machine for our_app
  6. copy  sso_app/lib/sso.rb  to our_app/lib
  7. follow the instructions specified in sso.rb file for our_app
  8. install app_config plugin from github.com for our_app
  9. create config/app_config.yml for application level configuration and add the following saas_site: ___, app_site: ____ and you can access these values like AppConfig.saas_site, AppConfig.app_site. use this in ApplicationController & remote.rb
  10. Caution: Don’t use Symbol for “element_name” in ActiveResource instead use string “user” not :user
  11. Remote/User.rb won’t work if you already have a user model in the application. So, use Remote/remote_user.rb and the class name will be Remote::RemoteUser
  12. Since we have renamed to Remote::RemoteUser, you have to change Remote::User to Remote::RemoteUser in the files, application_controller.rb(1), sessions_controller.rb(2) in our_app
  13. generate sso secret/salt with “rake secret”. you have to run it twice once for secret and another for salt. Paste the generated values to ApplicationController sso options in our_app and application.yml in sso_app
  14. Caution: Make sure you have the right controller name in routes. In my case I had session instead of sessions, so, it didn’t work
  15. Sessions_controller in client.rb, it beens coded not to use saasy in development. For testing purpose you can uncomment Rails env development section
  16. In my case, our_app database is different from sso_app database, so, I had to create user table and model and had to insert entries in user table for the registered users. If they are same database, this step is not necessary. (Will update if new solution is found to automatically update the new users)
  17. add “before_filter logged_in_required ” in any controller in our_app that needs protection. logged_in_required method have to added to ApplicationController with one line in it. “redirect_to sso_login_url unless current_user”
  18. add app_default_url to app_config.yml and use that in Sessions_controller/sso method instead of “/” in redirect_to_or_default. User will be taken to this url once logged in. In my case it will be “/dashboard”

Need a custom Ruby on Rails application to be developed?

Categories: Uncategorized

Identify Target Users – Never Underestimate

September 17, 2010 Leave a comment

Key to your product/business success is how correctly you can identify your target users
Once identified, everything else will fall into place.
Don’t agree – what and why?

Categories: business

13 things I learned from 1 stupid mistake

September 17, 2010 Leave a comment

Yesterday everything was perfect; Today Apache gone crazy. It won’t start on my beautiful Mac with Leopard.
Trying to get my Apache back in shape, I learned quite a few lessons. Hope this will be useful to someone.

My Environment

Mac OS X Leopard, Apache,

Started apache, but http://localhost won’t work

It turned out apache didn’t start.
lesson: Apache won’t complain when started from terminal

No suitable image found… but wrong architecture

Apache could not load phusion passenger module. Apache was running in 64 bit but the passenger module was compiled for 32 bit.
lesson: 32 bit and 64 bit don’t go well together.

launchctl: CFURLWriteDataAndPropertiesToResource(/System/Library/LaunchDaemons/org.apache.httpd.plist) failed: -10

Start Apache without sudo, you see the above message. Its new requirement.
sudo /usr/sbin/apachectl start
lesson: Error messages are not friendly sometimes.

difficult to uninstall ruby, when NOT installed through port

When ruby installed by downloading the tar/zip file, it is hard to uninstall. Instead use a package manager like macport to install software.
lesson: Before installing, look for alternatives to install/uninstall.

easy way to update macport
sudo port selfupdate #upgrade to latest macport
sudo port sync
sudo port upgrade outdated #report the ports to be upgraded
sudo port upgrade --force installed #update the outdated ports

lesson: work with the latest software

run apache in 32 bit

Create a /usr/local/sbin directory if it doesn’t exist

sudo mkdir /usr/local/sbin
List httpd’s architecture types
cd /usr/sbin
file httpd
Strip out the 64-bit support
sudo lipo httpd -thin ppc7400 -output httpd.ppc  # PowerPC
sudo lipo httpd -thin i386 -output httpd.i386    # x86
Stitch them together into a single 2-way 32-bit binary
sudo lipo httpd.ppc httpd.i386 -create -output /usr/local/sbin/httpd
Edit org.apache.httpd startup plist
cd /System/Library/LaunchDaemons
sudo nano org.apache.httpd.plist
Change the line:

/usr/sbin/httpd
to ..
/usr/local/sbin/httpd
suggestion: won’t it be easy to start apache in a 32 bit with a switch
sudo /usr/sbin/apachectl start —arch=32
lesson: Usability is not considered always

which http.conf the apache uses

/private/etc/apache2/http.conf
lesson: work with the right configuration file

install ruby through port
sudo port install ruby

lesson: don’t always choose the known route, look for alternatives

upgraded passenger to 2.2.15

hoped upgrade would help apache to start, but no
instructions @ http://www.modrails.com/install.html
lesson: another thing ruled out.

how to use find command
find / -name "http.conf" -print

found multiple instances of http.conf.
lesson: keep great helpers in your toolkit, that will help you some frustration

where the host file resides
/etc/hosts

lesson: information everyone should know.

upgraded gem bundler- bundle install won’t work

reported error: only has been removed from the Gemfile DSL, and has been replaced with group.
Updated GemFile
lesson: Google made us lazy, read the errors carefully before googling. Errors might contain the actions necessary to fix the problem.

deactivate or uninstall ruby via port
sudo port deactivate ruby
sudo port uninstall ruby

when multiple versions exists you have specify the version
lesson: package managers are here to help us.

Thank God, I didn’t have to upgrade my OS to get apache working

Categories: mac, tech

HootSuite – Your Social Dashboard – http

September 10, 2010 Leave a comment

HootSuite – Your Social Dashboard – http://ow.ly/2CyeW

Categories: Uncategorized