System Integration Topologies – An Analysis
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
Different Architects in IT Industry
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
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.
Are you a Good Architect?
- 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
When does CMS turn into an Inbound Marketing Platform?
- 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
Ruby Variable Scopes
local
_local_too
@instance
@@class
$global
CONSTANT
Saasy: Rails SaaS and SSO solution – up in no time
Following steps will get your saasy solution up.
- get saasy from github, this is a rails app, lets call is sso_app
- create new rails app, lets call it our_app, this will be using sso_app to login
- install restful-authentication plugin for our_app from github using “script/plugin install …”
- run in our_app, the command, “generate authenticated user sessions …”, provided in readme of restul-authentication plugin
- install plugin act-as-a-state-machine for our_app
- copy sso_app/lib/sso.rb to our_app/lib
- follow the instructions specified in sso.rb file for our_app
- install app_config plugin from github.com for our_app
- 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
- Caution: Don’t use Symbol for “element_name” in ActiveResource instead use string “user” not :user
- 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
- 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
- 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
- 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
- Sessions_controller in client.rb, it beens coded not to use saasy in development. For testing purpose you can uncomment Rails env development section
- 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)
- 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”
- 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”
Identify Target Users – Never Underestimate
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?
13 things I learned from 1 stupid mistake
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
HootSuite – Your Social Dashboard – http
HootSuite – Your Social Dashboard – http://ow.ly/2CyeW
Comments