11 Mar 2010 @ 1:15 AM 

Today, a technology newsletter carried with an article about SCA (Service Component Architecture) which is outshone at IBM campus along with BEA.  Is it a another SOA specification?  Is it a SOA framework? or, alternate to SOA?  Michael Rowley who is the author/architect/inventor of this said that it depends.  Confused.  Yes, it has been mentioned that SOA is hyped much and many of the things are futile.

Concept behind SCA

Following are the key aspects of SCA:

  • Services – a set of operations that perform logically related tasks
  • Components – contains the implementation and configuration of services
  • Composites – responsible for configuring services
  • Domain – A physical environment where the components will be hosted for consumption

A service contains a service contract and address.  Service contract specifies the operations available in the service, the inputs for which to operate and the promised outputs.  Service address provides where the service contract is available for consumption.  Components is nothing but C++ libraries or Java JARs.  Composites are XML file which contains the map between service contract and its implementation.  The domain enables to manage the components and apply policies for their access.  It provides common communication infrastructure and extensibility stuffs.

Technology behind SCA

Although in the specification it has been mentioned that SCA is technology and language independant, it is majorly on Java.  It has been mentioned that SCA is a concept as well as a framework but does not contains anything for presentation layer and data persistence.  However, it integrates with Java based UI and DB framworks.

So…What?

Instead of web services, SCA lets you connect and composite through web services, RPC or anyother means, unlike today protocol based SOA approach.   This is what mentioned and marketed in the SCA specification.  When you are crossing the border of “Concept behind SCA” section of this post, you have surprised that what is new in SCA for SOA, since WCF  incorporated these few years back when this specification was only on the paper.  More interesting and confusing thing is the specification team invited Microsoft for adopting this into .NET.  One more buzz is that this specification is based on WSDL.  These two make me what else have been proposed apart from what WCF has now with such the level of maturity.

For those who want clear map between above concepts and WCF:

  • Services - C# interface with WCF declarations
  • Components – C# classes with WCF declarations
  • Composites – Service model section in app.config/web.config file.
  • Domain – Service host (IIS/WAS/Windows Process)

What does it has….What doesn’t?

It provides the following:

  • Service reference – dependency with other services
  • Composition – way to encapsulate technical/vertical components such as validation, logging and auditing components within service and hide these to the outworld.
  • Policy - a statement that controls the operations that provided by the infrastructure.
  • Wire – a way for service aggregation and topologies (oneway, duplex, request and response)
  • Bindings – provides the means to communicate to the consumers.

It doesn’t have the following:

  • Service orchestration – but supports JSR based on BPEL
  • Service extension
  • Service inventory

Unfortunately, WCF has all the above with the power of .NET platform.  So, beware of SCA jargon in .NET world, where an elephant WCF has all the capabilities.  As of my understanding, SCA is WCF avatar in Java world.

Michael Rowley saluted the WCF proposals and its features, however he tried to oversight it with SCA.  Its confused.

Tags Tags: , , , ,
Categories: Architecture, Design, WCF
Posted By: udooz
Last Edit: 11 Mar 2010 @ 07 23 AM

EmailPermalinkComments (1)
 09 Mar 2010 @ 7:09 AM 

Continue to my previous introductory post about AppFabric, it is very fundamental to know the architecture IIS 7.0 and WAS.  So, this post.

IIS 7.0 Architecture

In the above diagram, you can see two regions in Windows. The kernal mode and user mode, and you know that processes in the kernal mode touches the CPU and other hardwares without any interface and have the rights to access physical memory without any virtual address mapping. The user mode processes are our own applications along with Windowing Subsystem which also includes Windows Network Subsystem.  Processes in the user mode requires processes in the kernal mode such as thread scheduling, memory, cache or IO related activities. So, it would require a thread context switching means that kernal model thread has been created and the data in the user mode thread has been transferred into kernal mode thread.  Ahhh, I’m explaining too much about Windows processing.  Lets cut off.

IIS 7 Components

Application Pool and Worker Process

Worker process is a windows process which is specifically designed for hosting and running static, ASP or ASP.NET web applications in IIS.  w3wp.exe is responsible for loading the appropriate ISAPI (a lower level programming module for handling specific web application, for example aspnet_isapi.dll for ASP.NET) filters and starts a new worker process for a request.

Application pool is a grouping of web applications those are routed to one or more worker processes.  Processes in one application pool will not be impacted by another application pool’s failure.

Request Processing Pipeline and Modules

A request processing pipeline is created for every request.  In the previous versions of IIS, if a request is for ASP.NET application, the application needs to exit from the IIS pipeline and load aspnet_isapi for handling ASP.NET code which inturn creates its own request processing pipeline.  In II7, both IIS and ASP.NET request pipelines are combined and called as “Integrated Pipeline“.  This pipeline contains one or more modules.  Module is a component which contain a specific set of features for IIS to handle a request.  For example, BasicAuthenticationModule is a module for performing basic authentication and FileCacheModule is a module for caching files and file handles.

The integrated pipeline has following benefits:

  • Eliminating the duplication of features between IIS and ASP.NET, for example authentication
  • One inventory for all IIS modules
  • Performance…performance…

WWW Service and WAS

It is necessary that a dedicated component is required for listening for requests and managing application pools and worker processes.  In IIS 7, WAS (Windows Process Activation Service) is dedicated for this.  Requests coming from different transports like HTTP, TCP/IP, NetPipe and MSMQ are handled by respective listener adapters configured in the WAS.  When a request is coming which is directed to respective listerner adapters which passes the request to appropriate worker process, where the application manager directs the request to the specific application.

WWW Service (World wide web publishing service, simply w3svc) is the listener adapter for HTTP.  Apart from this, it manages the configuration stuffs required for HTTP related.

Protocol Listeners and HTTP.sys (Kernal Mode)

As its name reflects, protocols listeners receive appropriate requests and passes them to the IIS.  Note that protocol listener are kernal mode processes.  This model allows to handle any protocol, and the only thing we require is appropriate device drive as like as HTTP.sys for HTTP requests.

Whenever a HTTP request is entering into the server, HTTP.sys receives the requests and pass it to appropriate worker process if exists, otherwise it puts the request in the request queue.  When a response for a request is already in the response cache, it fetches that and reply it back without noticing and invoking worker process.

Tags Tags: , , , , ,
Categories: ASP.NET, AppFabric
Posted By: udooz
Last Edit: 09 Mar 2010 @ 07 21 AM

EmailPermalinkComments (0)
 07 Mar 2010 @ 10:03 AM 

After a quite while, I’d a chance to start looking into Windows Server AppFabric.  This is one my long pending middler tier component from Windows/.NET combo.

What is AppFabric?

A set of components provide service hosting, in-memory caching, stateful services persistence and management services, management consoles and API to access these services.  The following figure shows the major responsibilities of AppFabric components.

AppFabric components responsibilities

Hosting services extends WAS (Windows Process Activation Service) with some default configuration, workflow management and, administration tools.  In-memory caching, previously code-named as Velocity, is a solution for scalable caching of enterprise/web applications.  Its cluster architecture and provision to configure various caching options enable us to prepare feast for small to large crowd.  Not know in detail about what makes different from WF 3.x and SQL Server combo, and state persistence service in AppFabric.  Let us see in detail on future logs.  To manage these aspects, AppFabric provides variety of management services which includes dashboard, service deployment, monitors and APIs.

Setup your AppFabric Environment

Windows Server AppFabric is actually designed for Windows 2008, but has development stage avatars for Windows Vista/7.  AppFabric beta 1 targetedc .NET 4.0 beta 2 and AppFabric beta 2 is targeted .NET 4.0 RC.  It will act as extension of IIS 7.0.  The following figure shows the IIS MMC for this.

The Windows 7/2008 beta 1 can be downloaded at http://download.microsoft.com/download/0/A/E/0AEB3BC1-506E-4954-8AB1-4FA2EE75985C/AseSetup_x86_6.1.exe.

Beta 2 can be downloaded at http://download.microsoft.com/download/F/D/4/FD4F05A5-016B-40F8-A61F-1D38E202A32A/WindowsServerAppFabricSetup_x86_6.1.exe.

Tags Tags: ,
Categories: .NET
Posted By: udooz
Last Edit: 07 Mar 2010 @ 10 03 AM

EmailPermalinkComments (1)
\/ More Options ...
Change Theme...
  • Users » 1
  • Posts/Pages » 54
  • Comments » 39
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight