Archive for Architecture

Event Driven Architecture

Event Driven architecture closely resembles publish subscribe model in terms of notifications to appropriate parties at the appropriate time.  But event driven approach is much beyond than publish subscribe.  Here is a good article “Event-Driven Architecture vs. Publish-Subscribe Systems” that talks about event driven architecture and also gives the difference between it and publish-subscribe model.

Blink this Event Driven Architecture at blinklist.com    Bookmark Event Driven Architecture at blogmarks    Bookmark Event Driven Architecture at del.icio.us    Digg Event Driven Architecture at Digg.com    Fark Event Driven Architecture at Fark.com    Bookmark Event Driven Architecture at Furl.net    Bookmark Event Driven Architecture at NewsVine    Bookmark Event Driven Architecture at reddit.com    Bookmark Event Driven Architecture at Simpy.com    Bookmark Event Driven Architecture at Spurl.net    Bookmark Event Driven Architecture with wists    Bookmark Event Driven Architecture at YahooMyWeb

Comments      Cosmos

Publish Subscribe model

Think of all the facilities that you have in your lifestyle for which you have subscribed.  Examples could be newspapers and magazines, cable TV, internet connection and the list can go on.  Think about this model. A publisher here is an entity that is capable of producing and/or delivering information/content of specific type.  A subscriber is the one who wants that information/content to be consumed.  There could be many publishers each of them having many subscribers.  Putting it differently there could be many subscribers subscribed to many publishers.  In every model there is a contract or an agreement that binds two entities.  In case of a publish subscriber model the contract is that a subscriber subscribes to a publisher and once the subscription is enabled the publisher delivers the information/content to all its subscribers at appropriate time without the subscriber requesting it.  Think of subscribing to a local newspaper agent who will put newspaper at your doorstep every morning.

Publish Subscribe model is popular in the software industry.  The differentiator with traditional client/server approach is the way the information/content is received by the client.  In the traditional approach, the client requests for specific information from the server and the server sends back the information.  In publish subscribe model once the client subscribes to the publisher, the publisher pushes the appropriate information/content to the client without the client requesting it.  The former uses the pull technology and the latter the push technology.  Typical examples of such a model is subscribing to newsletters, online magazines, why even the RSS feeds you receive from TechMasala as well.

There are also cases when the client will not know who or where the publisher is for the information/content it is looking for.  In such a case there are brokers whose primary role is to help subscribers subscribe to the publisher who can deliver the content it is looking for.  This broker has the list of publishers and what they can deliver.  A subscriber could talk to the broker, tell its requirement and the broker gets the subscriber connected to the appropriate publisher.

Blink this Publish Subscribe model at blinklist.com    Bookmark Publish Subscribe model at blogmarks    Bookmark Publish Subscribe model at del.icio.us    Digg Publish Subscribe model at Digg.com    Fark Publish Subscribe model at Fark.com    Bookmark Publish Subscribe model at Furl.net    Bookmark Publish Subscribe model at NewsVine    Bookmark Publish Subscribe model at reddit.com    Bookmark Publish Subscribe model at Simpy.com    Bookmark Publish Subscribe model at Spurl.net    Bookmark Publish Subscribe model with wists    Bookmark Publish Subscribe model at YahooMyWeb

Comments      Cosmos

Architecture Vs Design

There has been constant debate about these two terms and how to draw a line between these two. There have been several discussions around this and always there is confusion when something is called as architecture and when it is a design. Bredemeyer.com is a good site that contains lots and lots of information on architecture. Today I was reading an article “Architect. What’s in a name?” and it is a great article that describes who an architect is from the term architect and also gives a great analogy to differentiate architecture and design.

Blink this Architecture Vs Design at blinklist.com    Bookmark Architecture Vs Design at blogmarks    Bookmark Architecture Vs Design at del.icio.us    Digg Architecture Vs Design at Digg.com    Fark Architecture Vs Design at Fark.com    Bookmark Architecture Vs Design at Furl.net    Bookmark Architecture Vs Design at NewsVine    Bookmark Architecture Vs Design at reddit.com    Bookmark Architecture Vs Design at Simpy.com    Bookmark Architecture Vs Design at Spurl.net    Bookmark Architecture Vs Design with wists    Bookmark Architecture Vs Design at YahooMyWeb

Comments      Cosmos

RAID

Essentially any system would need some platform to enable the hardware, some programming tool to execute your programs, database management systems to hold content and so on.  Primary all these need to be present in a direct access storage device (DASD) since memory is volatile.  The best DASD that we all are aware of is hard disks. Now any hardware device is vulnerable to failure at some point of time.  Applications requiring fault tolerance in terms of hardware will go in for clustering mode where the hardware’s are replicated and one picks up control when another goes off.  The complexity of clustering is dependant upon the criticality of the application.  Since all the data including your program resides on a DASD typically hard disk, redundancy of it is very important.  Not only it addresses failover but since DASD has a slower access rate compared to the RAM, higher access rate is important to reduce those delays in the production environment.  How will redundant hard disks help? That is where RAID comes to help.

RAID stands for Redundant Array of Independent Disks. A RAID controller is a hardware that can divide packets of information in chunks and put them across multiple hard disks.  While reading back it would pick up the pieces, assemble, decode and send it to the processor as one piece making it look like the information is coming from a single hard disk.  There are various levels of RAID that can help in providing fault tolerance, higher throughput and so on.  The controller design gets complex as higher throughput and fault tolerance are required.  Here is a RAID tutorial that simply puts various levels of RAID, its advantages and disadvantages.

Blink this RAID at blinklist.com    Bookmark RAID at blogmarks    Bookmark RAID at del.icio.us    Digg RAID at Digg.com    Fark RAID at Fark.com    Bookmark RAID at Furl.net    Bookmark RAID at NewsVine    Bookmark RAID at reddit.com    Bookmark RAID at Simpy.com    Bookmark RAID at Spurl.net    Bookmark RAID with wists    Bookmark RAID at YahooMyWeb

Comments      Cosmos

Enterprise Application Integration (EAI)

Large enterprises have multiple applications serving different purposes. And the information is scattered across various applications. Most of the times there is a huge overlap of information between different applications but each application uses its own resource to store information. Not only data but common business processing code might be available redundantly in many applications. When applications working in silos can be interconnected with common business entities acting as service and common data shared between services and applications, it is enterprise application integration (EAI). While it is easy to define here, it is an Herculean task to bring together different applications and deifferent teams to make it happen. Enterprise Service Bus (ESB) is one of the approaches to enable EAI. EAI on wikipedia has more details and also the pitfalls.

Blink this Enterprise Application Integration (EAI) at blinklist.com    Bookmark Enterprise Application Integration (EAI) at blogmarks    Bookmark Enterprise Application Integration (EAI) at del.icio.us    Digg Enterprise Application Integration (EAI) at Digg.com    Fark Enterprise Application Integration (EAI) at Fark.com    Bookmark Enterprise Application Integration (EAI) at Furl.net    Bookmark Enterprise Application Integration (EAI) at NewsVine    Bookmark Enterprise Application Integration (EAI) at reddit.com    Bookmark Enterprise Application Integration (EAI) at Simpy.com    Bookmark Enterprise Application Integration (EAI) at Spurl.net    Bookmark Enterprise Application Integration (EAI) with wists    Bookmark Enterprise Application Integration (EAI) at YahooMyWeb

Comments (1)      Cosmos

Enterprise Service Bus

Have you come across multiple applications working together? Take for example an online shopping site. This would integrate with multiple vendor applications and payment gateways behind the scenes. Making these applications coordinate with each other and making them work coherently would be the critical part that decides its success. Called an enterprise application the architecture/design plays an important role in deciding the interface that will enable integration with other applications. This interface called as middleware is only responsible for making sure the information from one application to another is passed without fail and in a secure fashion. If the applications that we are talking about are services then what we are talking about is Enterprise Service Bus (ESB). The ESB is a key enabler of the buzzword Service Oriented Architecture (SOA). The technology choices around ESB are critical decisions performed by an architect that orchestrates the services working together. For example communicating with an application that acts as a payment gateway would require a secure communication and with either a successful or total failure transaction meaning you don’t want to pay but not get the product. A detailed three part series on “Enterprise Service Bus” is available on Dr. Dobb’s Portal.

Blink this Enterprise Service Bus at blinklist.com    Bookmark Enterprise Service Bus at blogmarks    Bookmark Enterprise Service Bus at del.icio.us    Digg Enterprise Service Bus at Digg.com    Fark Enterprise Service Bus at Fark.com    Bookmark Enterprise Service Bus at Furl.net    Bookmark Enterprise Service Bus at NewsVine    Bookmark Enterprise Service Bus at reddit.com    Bookmark Enterprise Service Bus at Simpy.com    Bookmark Enterprise Service Bus at Spurl.net    Bookmark Enterprise Service Bus with wists    Bookmark Enterprise Service Bus at YahooMyWeb

Comments      Cosmos

Code Obfuscation

Have you ever wondered if your packaged code could be reverse engineered? Back to source code? Take an example, say you are working for a customer and creating a system that is to be deployed on the customer’s environment. You package and deploy it at the customer’s site. But is it possible that the packaged code could be reverse engineered so that your source is viewable? If yes, are you consciously aware that it is ok? If you run into such a situation and you want your package not to be reengineered easily then what you are looking for is code obfuscation.

Code obfuscation is an intermediary step before compilation. Basically the code obfuscator software kind of transforms certain code that doesn’t alter the program’s output but makes it difficult to understand when reengineered. For example what if the variable names are translated to some random text? That’s one simple example; there are lots of other ways obfuscation can be applied. With J2EE and/or .Net one level of protection is already there since the code would be a .class or binary file respectively. Albeit it is not tough to decompile at least a java class as far as I know. Mocha decompiler is one that comes to my mind immediately. But with script based languages like, PHP, Ruby etc. code obfuscation might be needed if the system is going to be deployed at client/customer site as its interpreted and there is no intermediary file getting generated. Depending on the language, you might be lucky to have a tool to obfuscate or you might have to create a tool of your own.

Blink this Code Obfuscation at blinklist.com    Bookmark Code Obfuscation at blogmarks    Bookmark Code Obfuscation at del.icio.us    Digg Code Obfuscation at Digg.com    Fark Code Obfuscation at Fark.com    Bookmark Code Obfuscation at Furl.net    Bookmark Code Obfuscation at NewsVine    Bookmark Code Obfuscation at reddit.com    Bookmark Code Obfuscation at Simpy.com    Bookmark Code Obfuscation at Spurl.net    Bookmark Code Obfuscation with wists    Bookmark Code Obfuscation at YahooMyWeb

Comments      Cosmos

ATAM - Architectural Tradeoff Analysis Method

ATAM is a proven method for evaluating an architecture similar to quality assurance process on software development. Founded by SEI (Software Engineering Institute) of Carnegie Mellon university, this evaluation process involves architects and ATAM trained/certified representatives sitting together and validating the proposed architecture. One of the main advantage of such an evaluation is to validate that the architecture would indeed help in meeting the non functional requirements (NFRs). More information on ATAM is available here. ATAM is a disciplined process that can be followed in any organization which has an architecture team and would need a quality check on the architecture being produced.

Blink this ATAM - Architectural Tradeoff Analysis Method at blinklist.com    Bookmark ATAM - Architectural Tradeoff Analysis Method at blogmarks    Bookmark ATAM - Architectural Tradeoff Analysis Method at del.icio.us    Digg ATAM - Architectural Tradeoff Analysis Method at Digg.com    Fark ATAM - Architectural Tradeoff Analysis Method at Fark.com    Bookmark ATAM - Architectural Tradeoff Analysis Method at Furl.net    Bookmark ATAM - Architectural Tradeoff Analysis Method at NewsVine    Bookmark ATAM - Architectural Tradeoff Analysis Method at reddit.com    Bookmark ATAM - Architectural Tradeoff Analysis Method at Simpy.com    Bookmark ATAM - Architectural Tradeoff Analysis Method at Spurl.net    Bookmark ATAM - Architectural Tradeoff Analysis Method with wists    Bookmark ATAM - Architectural Tradeoff Analysis Method at YahooMyWeb

Comments      Cosmos

Next entries » · « Previous entries

Creative Commons License  This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.