The role of an architect in software development has come under attack of late. On software projects, the title Architect is often ambiguously defined and the value provided by architects is not easily quantifiable. The perception that architects live in an "ivory tower" disassociated from the realities of delivering a software solution contributes to some of the animosity toward those of us with the title.
This article presents a defense of the practice of architecture in software development. It defines the qualities of an effective architect and describes the skills required to succeed in this profession. The article examines widely held perceptions of architects and some of the mistakes that architects make which contribute to negative perceptions. Ultimately, the intent is to show the value good architects bring to a software development effort.
Read more ...
Monday, December 05, 2011
Monday, November 07, 2011
Java Message Service
The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process. It is a messaging standard that allows application components based on the Java Enterprise Edition (JEE) to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.
Source: Wikipedia
Source: Wikipedia
Enterprise Service Bus
An enterprise service bus (ESB) is a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture. As a software architecture model for distributed computing it is a speciality variant of the more general client server software architecture model and promotes strictly asynchronous message oriented design for communication and interaction between applications. Its primary use is in Enterprise Application Integration of heterogenous and complex landscapes.
The concept has been developed in analogy to the Bus concept found in computer hardware architecture combined with the modular and concurrent design of high-performance computer operating systems. Motivation was to find a standard, structured and general purpose concept for describing implementation of loosely coupled software components (called: services) that are expected to be independently deployed, running, heterogenous and disparate within a network. ESB is also the intrinsincly adopted network design of the World Wide Web and the common implementation pattern for Service Oriented Architecture.
Source: Wikipedia
The concept has been developed in analogy to the Bus concept found in computer hardware architecture combined with the modular and concurrent design of high-performance computer operating systems. Motivation was to find a standard, structured and general purpose concept for describing implementation of loosely coupled software components (called: services) that are expected to be independently deployed, running, heterogenous and disparate within a network. ESB is also the intrinsincly adopted network design of the World Wide Web and the common implementation pattern for Service Oriented Architecture.
Source: Wikipedia
Friday, October 14, 2011
Model–View–Controller (MVC)
Model–view–controller (MVC) is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" (the application logic for the user) from the user interface (input and presentation), permitting independent development, testing and maintenance of each (separation of concerns).
The model manages the behaviour and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller). In event-driven systems, the model notifies observers (usually views) when the information changes so that they can react.
The view renders the model into a form suitable for interaction, typically a user interface element. Multiple views can exist for a single model for different purposes. A viewport typically has a one to one correspondence with a display surface and knows how to render to it.
The controller receives user input and initiates a response by making calls on model objects. A controller accepts input from the user and instructs the model and a viewport to perform actions based on that input.
An MVC application may be a collection of model/view/controller triads, each responsible for a different UI element.
Source: Wikipedia
More Details: MSDN
Service-Oriented Architecture (SOA)
In software engineering, a Service-Oriented Architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components (discrete pieces of code and/or data structures) that can be reused for different purposes. SOA design principles are used during the phases of systems development and integration.
SOA also generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will benefit from a well-understood, well-defined interface to access them. XML is often used for interfacing with SOA services, though this is not required. JSON is also becoming increasingly common.
SOA defines how to integrate widely disparate applications for a Web-based environment and uses multiple implementation platforms. Rather than defining an API, SOA defines the interface in terms of protocols and functionality. An endpoint is the entry point for such a SOA implementation.
Service orientation requires loose coupling of services with operating systems, and other technologies that underlie applications. SOA separates functions into distinct units, or services, which developers make accessible over a network in order to allow users to combine and reuse them in the production of applications. These services and their corresponding consumers communicate with each other by passing data in a well-defined, shared format, or by coordinating an activity between two or more services.
SOA can be seen in a continuum, from older concepts of distributed computing and modular programming, through SOA, and on to current practices of mashups, SaaS, and Cloud Computing (which some see as the offspring of SOA).
Source: Wikipedia
SOA also generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will benefit from a well-understood, well-defined interface to access them. XML is often used for interfacing with SOA services, though this is not required. JSON is also becoming increasingly common.
SOA defines how to integrate widely disparate applications for a Web-based environment and uses multiple implementation platforms. Rather than defining an API, SOA defines the interface in terms of protocols and functionality. An endpoint is the entry point for such a SOA implementation.
Service orientation requires loose coupling of services with operating systems, and other technologies that underlie applications. SOA separates functions into distinct units, or services, which developers make accessible over a network in order to allow users to combine and reuse them in the production of applications. These services and their corresponding consumers communicate with each other by passing data in a well-defined, shared format, or by coordinating an activity between two or more services.
SOA can be seen in a continuum, from older concepts of distributed computing and modular programming, through SOA, and on to current practices of mashups, SaaS, and Cloud Computing (which some see as the offspring of SOA).
Source: Wikipedia
Friday, February 12, 2010
Team Foundation Server
Software development teams of all sizes struggle with many of the same issues such as poor communication and collaboration, lack of consistent processes, and a scramble to ensure quality at the end of the development cycle. And although most teams struggle with the overhead of information gathering and reporting, they still suffer from an inability to make accurate, real-time decisions.
Microsoft Visual Studio Team System is an integrated application lifecycle management (ALM) solution comprising tools, processes, and guidance. With Visual Studio Team System, all members of a software development team can:
Wednesday, September 23, 2009
Courier: First Details of Microsoft's Secret Tablet
It feels like the whole world is holding its breath for the Apple tablet. But maybe we've all been dreaming about the wrong device. This is Courier, Microsoft's astonishing take on the tablet.

Courier is a real device, and we've heard that it's in the "late prototype" stage of development. It's not a tablet, it's a booklet. The dual 7-inch (or so) screens are multitouch, and designed for writing, flicking and drawing with a stylus, in addition to fingers. They're connected by a hinge that holds a single iPhone-esque home button. Statuses, like wireless signal and battery life, are displayed along the rim of one of the screens. On the back cover is a camera, and it might charge through an inductive pad, like the Palm Touchstone charging dock for Pre.
Until recently, it was a skunkworks project deep inside Microsoft, only known to the few engineers and executives working on it—Microsoft's brightest, like Entertainment & Devices tech chief and user-experience wizard J. Allard, who's spearheading the project. Currently, Courier appears to be at a stage where Microsoft is developing the user experience and showing design concepts to outside agencies.
Microsoft has a history of collaborating with other firms, especially in the E&D division: Zune and Xbox have both gone through similar design processes. (And plans for the Microsoft Store leaked through a third-party agency were confirmed as genuine prototype layouts and concepts.)
The Courier user experience presented here is almost the exact opposite of what everyone expects the Apple tablet to be, a kung fu eagle claw to Apple's tiger style. It's complex: Two screens, a mashup of a pen-dominated interface with several types of multitouch finger gestures, and multiple graphically complex themes, modes and applications. (Our favorite UI bit? The hinge doubles as a "pocket" to hold items you want move from one page to another.) Microsoft's tablet heritage is digital ink-oriented, and this interface, while unlike anything we've seen before, clearly draws from that, its work with the Surface touch computer and even the Zune HD.

Courier is a real device, and we've heard that it's in the "late prototype" stage of development. It's not a tablet, it's a booklet. The dual 7-inch (or so) screens are multitouch, and designed for writing, flicking and drawing with a stylus, in addition to fingers. They're connected by a hinge that holds a single iPhone-esque home button. Statuses, like wireless signal and battery life, are displayed along the rim of one of the screens. On the back cover is a camera, and it might charge through an inductive pad, like the Palm Touchstone charging dock for Pre.
Until recently, it was a skunkworks project deep inside Microsoft, only known to the few engineers and executives working on it—Microsoft's brightest, like Entertainment & Devices tech chief and user-experience wizard J. Allard, who's spearheading the project. Currently, Courier appears to be at a stage where Microsoft is developing the user experience and showing design concepts to outside agencies.
Microsoft has a history of collaborating with other firms, especially in the E&D division: Zune and Xbox have both gone through similar design processes. (And plans for the Microsoft Store leaked through a third-party agency were confirmed as genuine prototype layouts and concepts.)
The Courier user experience presented here is almost the exact opposite of what everyone expects the Apple tablet to be, a kung fu eagle claw to Apple's tiger style. It's complex: Two screens, a mashup of a pen-dominated interface with several types of multitouch finger gestures, and multiple graphically complex themes, modes and applications. (Our favorite UI bit? The hinge doubles as a "pocket" to hold items you want move from one page to another.) Microsoft's tablet heritage is digital ink-oriented, and this interface, while unlike anything we've seen before, clearly draws from that, its work with the Surface touch computer and even the Zune HD.
Wednesday, July 08, 2009
Google Chrome - Your Friendly Neighborhood OS

It finally happened - Google decided to cross over and start playing in Microsoft's back yard, well perhaps that isn't an accurate analogy - Google will be playing in Microsoft's living room, with its toys and eating its chips [better :)]. Google announced that it will be releasing a Chrome OS, due for shipping in 2010.
Google has officially announced what many have suspected for years: An open-source operating system based around its product line.
Simply called Google Chrome OS, the forthcoming software is targeted at x86 and ARM based hardware and is completely separate from Android, which is maintained by the Open Hardware Alliance along with Google.
Google will open-source the Chrome OS code later this year and netbooks running Google Chrome OS are planned to be available for consumers in the second half of 2010. The software architecture consists of Google Chrome running within a new window's system on top of a Linux kernel, similar to Palm’s webOS.
For application developers, the web is the platform. All web-based applications will automatically work and new applications can be written using standard web technologies. Apps will run not only on Google Chrome OS, but on any standards-based browser on Windows, Mac and Linux, thereby giving developers the largest user base of any platform as well as using standard Linux development tools for more conventional applications.
Google is pitching the Google Chrome OS in a similar manner to the browser by addressing the most common issues such as dealing with viruses, malware and security updates along with instant email access, speed, data accessibility, redundancy and configuration for average users.
Tuesday, July 07, 2009
Visual Studio 2010
Visual Studio 2010 and the .NET Framework 4.0 mark the next generation of developer tools from Microsoft. Designed to satisfy the latest requirements of developers, Visual Studio delivers key innovations in the following areas:
Enabling emerging trends
Every year the industry develops new technologies and new trends. With Visual Studio 2010, Microsoft delivers tooling and framework support for the latest innovations in application architecture, development, and deployment.
Inspiring developer delight
Ever since the first release of Visual Studio, Microsoft has set the bar for developer productivity and flexibility. Visual Studio 2010 continues the tradition by significantly improving the experience for all software development roles.
Riding the next generation platform wave
Microsoft continues to invest in the market-leading operating system, productivity applications, and server platforms to deliver increasing customer value. With Visual Studio 2010, customers will have the tooling support that is required to create amazing solutions around these technologies.
For more information about Visual Studio 2010 and the .NET Framework 4, visit the Microsoft Visual Studio 2010 Web site.
Enabling emerging trends
Every year the industry develops new technologies and new trends. With Visual Studio 2010, Microsoft delivers tooling and framework support for the latest innovations in application architecture, development, and deployment.
Inspiring developer delight
Ever since the first release of Visual Studio, Microsoft has set the bar for developer productivity and flexibility. Visual Studio 2010 continues the tradition by significantly improving the experience for all software development roles.
Riding the next generation platform wave
Microsoft continues to invest in the market-leading operating system, productivity applications, and server platforms to deliver increasing customer value. With Visual Studio 2010, customers will have the tooling support that is required to create amazing solutions around these technologies.
For more information about Visual Studio 2010 and the .NET Framework 4, visit the Microsoft Visual Studio 2010 Web site.
Microsoft .NET Framework 4.0
The Microsoft .NET Framework 4.0 provides a variety of new features and improvements:
The .NET Framework 4.0 works side by side with the Framework version 3.5 SP1. Applications that are based on earlier versions of the Framework will continue to run on that version. Just a subset of functionality is shared by all versions of the Framework.
Innovations in the Visual Basic and C# languages, for example statement lambdas, implicit line continuations, dynamic dispatch, and named/optional parameters.
The ADO.NET Entity Framework, which simplifies how developers program against relational databases by raising the level of abstraction, has many new features. These includes persistence ignorance and POCO support, lazy loading, test-driven development support, functions in model, and new LINQ operators.
Enhancements to ASP.NET:
- New JavaScript UI Templates and databinding capabilities for AJAX.
- New ASP.NET chart control.
Improvements in WPF:
- Added support in Windows Presentation Foundation (WPF) for Windows 7 multi-touch, ribbon controls, and taskbar extensibility features.
- Added support in WPF for Surface 2.0 SDK.
- New line-of-business controls including charting control, smart edit, data grid, and others that improve the experience for developers who build data centric applications.
- Improvements in performance and scalability.
- Visual improvements in text clarity, layout pixel snapping, localization, and interoperability.
Improvements to Windows Workflow (WF) that let developers to better host and interact with workflows. These include an improved activity programming model, an improved designer experience, a new flowchart modeling style, an expanded activity palette, workflow-rules integration, and new message correlation features. The .NET Framework also offers significant performance gains for WF-based workflows.
Improvements to Windows Communication Foundation (WCF) such as support for WCF Workflow Services enabling workflow programs with messaging activities, correlation support, durable two-way communication and rich hosting capabilities. Additionally, .NET Framework 4.0 provides new WCF features such as service discovery, router service, simplified configuration and a number of improvements to queuing, REST support, diagnostics, and performance.
Innovative new parallel programming features such as parallel loop support, Task Parallel Library (TPL), Parallel LINQ (PLINQ), and coordination data structures which let developers harness the power of multi-core processors.
Subscribe to:
Posts (Atom)
