Posts

IIS & ASP.NET Concepts

Image
Concepts and interaction between IIS and ASP.NET components can be confusing at times. Relationships amongst IIS application, virtual directory, application pool, application domain are confusing at best. Having researched a bit, I attempted to model the various concepts and their inter-relationships using the following UML class diagram. Concepts in Pink applies strictly to ASP.NET domain. Concepts in Blue are applicable to IIS domain. A point to note is that a VirtualDirectory (VD) can contain other VDs. If a composed/ sub VD is not configured as an Application, the VD is treated as a sub-directory of the composing/ parent Application. As such, all the resources may be shared (e.g. application, session information). If the composed/ sub VD is configured as a separate Application, the resources are not shared (even if the same ApplicationPool is in use!). The reason is that the resources are isolated based on the ApplicationDomain . To deal with request/ session/ DB timeout, the...

Cloud Computing

Differences amongst IaaS, PaaS, SaaS   IaaS PaaS SaaS Application     provided Runtime   provided provided Database   provided provided Operating System   provided provided Virtualisation provided provided provided Server provided provided provided Storage provided provided provided Network provided provided provided

ITABOK

Image
“Architecture expresses the intent, what we want to do; Implementation expresses the technologies used.” IT Architecture Body of Knowledge is summarised as follows: The Software Architecture determines flexibility The Infrastructure Architecture determines adaptability The Information Architecture forms awareness The Business Architecture helps productivity

Complex Events Processing

Image
The main concepts for designing CEP systems are captured in the following UML class diagram:

Enterprise Architecture

Image
Meta-model for a Organisation Vision – a statement by company officials about the broad purpose of the company Strategy – grouping of plans that supports achieving company goals Goal – a specific objective that is measurable and achievable within the planning horizon Programme – provides the rules that govern initiatives and projects Project – a work effort that has defined start and end points. It consumes resources and generate values (e.g. cost reductions, revenue growth, benefits, etc.) Business Function – a set of procedures or activities that delivers products, services or support control of the company Capability – due to the business functions, the company is able to perform tasks, deliver services and develop products that sets itself apart from competitors Business Process – a procedure or activity that uses resources input to generate a measurable output. A group of these creates a function Application – a computerised system supporting automation for business proc...

Useful Design Patterns for Brownfield Projects

Brownfield projects are ubiquitous these days. Greenfield on the other-hand are hard to come by. The ways to deal with both are different. In particular, design patterns that are applicable to brownfield are: Adapter Pattern – adapt a component to another component using a different interface. Proxy Pattern – useful for controlling access to some resource, especially remote ones. Allows decoupling of the client from knowledge of connecting to the service. (Remote) Façade Pattern – to remove the complexity of some service by providing a simplified interface Data Transfer Object – useful in decoupling the views from the data access codes as well as reducing the number of remote invocations to the database layer. Data Access Layer – used to isolate the data access from the users’ interface.

Non Functional Requirements – Performance

Requirements, especially non-functional ones, need to be SMART: S pecific M easurable A ttainable (Achievable, Actionable, Appropriate) R ealisable (Realistic) T ime-bound (Timely, Traceable) For performance requirements (should these be more correctly called performance goals ?), the following aspects are most relevant: Response time – how fast the system responses to requests Throughput handling – how many requests the system can handle Concurrency – how many threads/ users can operate simultaneously To specify performance requirements, consider the following: Expected daily load: number of invocations/ day. E.g. System is expected to receive (on average) 500 requests everyday Expected peak load: max invocations / day. E.g. System is expected to hit a peak load of 1000 requests on certain days (Maximum) Response Time: invocations need to respond within certain timeframe. E.g. System needs to respond to requests within 5 seconds The last point (response time) deserves fu...