Total Pageviews

Wednesday, December 29, 2010

How .Net Assemblies work

Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions.

An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. An assembly provides the common language runtime with the information it needs to be aware of type implementations.

An assembly is a different name for the executable files in .Net. A .NET executable is actually the source code of an IL (Intermediate Language) program

Just in time compiler in .net is---

When a .net assembly is executed, u r actually calling the CLR (common language runtime ) to compile the assembly into native code (IL) called the JIT.

In .NET, every assembly starts with something called a manifest that contains metadata (data about data) telling the CLR what it needs to know to execute the assembly instructions.

Assemblies can be static or dynamic. Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). Static assemblies are stored on disk in portable executable (PE) files. You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. You can save dynamic assemblies to disk after they have executed.

You can run different versions of the same assembly with same name but different version side by side.
An Asssembly can be a private or shared.
If an assembly is to be shared among several programs then it need to be shared in GAC. To put an assembly in GAC, it should have a strong name.

Assembly Manifest

Every assembly, whether static or dynamic, contains a collection of data that describes how the elements in the assembly relate to each other. The assembly manifest contains this assembly metadata. An assembly manifest contains all the metadata needed to specify the assembly's version requirements and security identity, and all metadata needed to define the scope of the assembly and resolve references to resources and classes. The assembly manifest can be stored in either a PE file (an .exe or .dll) with Microsoft intermediate language (MSIL) code or in a standalone PE file that contains only assembly manifest information.
http://visualbasic.about.com/od/usingvbnet/a/asmnet01_2.htm

Monday, December 20, 2010

Routing Services in biztalk

Routing services are used for routing the messages to the target endpoint based on the content of the message.

http://social.msdn.microsoft.com/Forums/en-US/biztalkgeneral/thread/82112f67-9bc4-4b9a-b065-6af942e643c9/

http://technet.microsoft.com/en-us/library/ee236697(BTS.10).aspx


Using BizTalk as a router will be a less lightweight approach, but will enhance flexibility as you can route over multiple protocols and technology (through its adapters). Routing can be done message-based based on certain properties, but since you do not want to deploy any schema's you will have to go for content-based routing principle using orchestration and xpath (retrieving soap-action). Since you want to use un-typed messages this would be the approach to follow. Regarding performance it will be less performant as it's solution is pub/sub (BizTalk uses database) compared to WCF, where routing will take place in memory. A third option (alternative) can be using ESB Toolkit. In the end it depends what you want to achieve based on requirements and long-term strategy for your routing solution.

Regards,
Steef-Jan Wiggers
MCTS BizTalk Server
http://soa-thoughts.blogspot.com/

What is are Pipelines in Biztalk Server ?

  • The BizTalk adapters take up the responsibility of interacting with the end systems and getting the data. 
  • it is the pipelines transform the data into something that BizTalk can understand – Xml.
  • pipelines form a channel for the messages from the adapters to the message box where they are finally delivered. After the message leaves the pipeline, the messaging engine is responsible for the further processing of the messages. The processing can include routing or executing a business process – as has been defined by the developer.
 Note :
The messaging engine works on a certain format of data that it terms as a message. This is necessarily a XML message with a specific format containing the message headers and body parts. The Adapter is explicitly responsible for interacting directly with the end systems. To isolate the workload, the adapter does not take care of any kind of formatting of the message so that the message is understood by the Messaging Engine. This is exactly the reason where the pipelines play their role. The pipelines accept the data from the adapters and work on it to build up the Message that can be understood by the messaging engine.


http://blogs.msdn.com/b/sanket/archive/2006/06/13/pipelines-in-biztalk-2006.aspx 

http://www.c-sharpcorner.com/UploadFile/johncharles/89/Default.aspx

What is a Throttling in WCF ?

While not a direct instance management technique, throttling enables you to restrain client connections and the load they place on your service. Throttling allows you to avoid maxing-out your service and the underlying resources it allocates and uses.
The default throttling setting is unlimited. When engaged, if the throttling settings you configured are exceeded, Windows Communication Foundation automatically places the pending callers in a queue and serves them out of the queue in order. Throttling is done per service type—that is, it affects all instances of the service and all its endpoints. This is done by associating the throttle with every channel dispatcher the service uses.
With a per-session service, Max Instances is both the total number of concurrently active instances and the number of concurrent sessions. With a shared-session service, Max Instances is just the total number of concurrently active instances (since each shared instance can have multiple sessions). With a per-call service, the number of instances is actually the same as the number of concurrent calls. Consequently, the maximum number of instances with a per-call service is the minimum of Max Instances and Max Concurrent Calls. Max Instances is ignored with a singleton service since it can only have a single instance anyway.
Throttling is typically configured in the config file. This enables you to throttle the same service code differently over time or across deployment sites. The host can also programmatically configure throttling based on some run-time decisions.

Using the behaviorConfiguration tag you add to your service a custom behavior that sets throttled values.
           
<system.serviceModel>
    <services>
        <service type = "MyService"
                 behaviorConfiguration = "ThrottledBehavior">
        ...
        </service>
    </services>
    <behaviors>
        <behavior name="ThrottledBehavior">
            <throttling
               maxConcurrentCalls = "12"
               maxConnections = "34"
               maxInstances = "56"
            />
        </behavior>
    </behaviors>
</system.serviceModel>
The host process can programmatically throttle the service based on some run-time parameters. You can only do so before the host is opened. Although the host can override the throttling behavior found in the config file by removing the configuration and adding its own, you typically should provide a programmatic throttling behavior only when there is no throttling behavior in the config file.
The throttled values can be read at run time by service developers for diagnostics and analysis purposes. The service instance can access at run time its throttled properties from its dispatcher. First, obtain a reference to the host from the operation context. The host base class ServiceHostBase offers the read-only ChannelDispatchers property—a strongly typed collection of ChannelDispatcherBase objects. Each item in the collection is of the type ChannelDispatcher. ChannelDispatcher offers the property ServiceThrottle which contains the configured throttled values .

Conclusion
While every application is unique when it comes to scalability, performance, and throughput, Windows Communication Foundation does offer canonical instance management techniques that are applicable across the range of applications, thus enabling a wide variety of scenarios and programming models. Understanding Windows Communication Foundation instance management and choosing the right activation mode is critical.Yet applying each mode is surprisingly easy to accomplish. In addition, you can augment the straightforward modes with demarcating operations and instance deactivation.

My Guide to WCF
Juval Lowy is a software architect with IDesign providing Windows Communication Foundation training and architecture consulting. Juval is currently working on a comprehensive Windows Communication Foundation book. He is also the Microsoft Regional Director for the Silicon Valley. Contact Juval at www.idesign.net.

What is an adapter in Biztalk Server ?

  • An adapter is used to communicate with other applications to support the interoperability by the Biztalk server.
  • The BizTalk Adapter Pack provides a simplified way to connect line of business systems with any custom .NET application.  
  • BizTalk Server provides additional capabilities such as service orchestration in SOA environments, EDI, RFID and business rules.
  • With the BizTalk Adapter Pack customers can start with simple point-to-point connectivity solutions and then simply upgrade to BizTalk Server as their needs evolve. 
  • This means that our customers have a broader set of choices for connecting systems across platforms.
  • We can achieve easy interoperability with multiple LOB applications (like SAP, Siebel or Oracle Applications) simultaneously with the Adapter Pack.  
  • The adapters do not rely on the programming model/framework of individual Microsoft products like BizTalk Server, SQL Server or SharePoint Server but are built on the WCF components in the .NET Framework.
  • This allows us to do simple point-to-point connectivity solutions and simply move information to BizTalk Server, SQL Server or SharePoint Server.
  • WE can use the Adapter Pack with a broad set of choices for cross-platform integration 
For more details go tohttp://www.microsoft.com/biztalk/en/us/adapter-pack.aspx

    What is a Host Instance in Biztalk Server ?

    A host instance is the physical representation of a host on a specific server.
    A host is a logical representation of the Microsoft windows processes that  run /execute the biztalk arfiacts -- orchestrations , maps etc.,

    What is a Host in Biztalk Server ?

    • A host is a logical representation of a Microsoft Windows process that executes BizTalk Server artifacts such as send ports and orchestrations. 
    • A host can be either an in-process host, which means it is owned and managed by BizTalk Server, or an isolated host, which means that the BizTalk Server code is running in a process that is not controlled by BizTalk Server. 
    • A good example of an isolated host is Internet Information Services (IIS), which hosts the receive functionality of the HTTP and SOAP adapters.

    Biztalk Architecture

    BizTalk Server is called content-based publish/subscribe. In a content-based publish/subscribe model, subscribers specify the messages they want to receive using a set of criteria about the message. The message is evaluated at the time it is published, and all of the active subscribers with matching subscriptions (indicated by filter expressions), receive the message.

    In this simplified view below , a message is received through a receive location defined in a given receive port. This message is processed by the receive location and then published to the MessageBox database, the main persistence and routing mechanism for BizTalk Server. The MessageBox evaluates active subscriptions and routes the message to those orchestrations and send ports with matching subscriptions. Orchestrations may process the message and publish messages through the MessageBox to a send port where it is pushed out to its final destination.


         
    Biztalk Architecture



    Integration Types

    • Application Integration: Connecting different applications and systems in order to automate business processes.
    • Business to Business Integration (B2Bi): Connecting to other online enterprises in order to run processes more efficiently.
    • Data Integration: Consolidating databases from different teams, or divisions, into one master database or master list.
    • Event Integration: Integrating high-throughput data streams with information and other events. 
    • Cloud Integration: Integrating between on-premises and in cloud applications or databases. 

    A better solution is Enterprise Application Integration (EAI) using Service-Orientated Architecture (SOA).

    For more information click on the below link
    http://searchdatamanagement.techtarget.com/feature/Top-eight-data-and-application-integration-definitions-and-buzzwords

    Biztalk Course --Topics covered in the course

    1)      Introduction on different types of Application Integrations
    2)      Types of integration implementation
    3)      Business challenges for integration.
    4)      BizTalk Server 2009 Architecture
    ·                       Host
    ·                       Host Instances
    ·                       Adapters
    ·                       Pipelines
    ·                       Routing Services
    ·                       Transformations services
    ·                       Delivery services
    ·                       Business Process Services
    ·                       Tracking services
    ·                       Single sign on
    ·                       Business Rule Engine
    5)      BizTalk Server 2009 installation and trouble shooting
    6)      Configuration of BizTalk Server 2009 with SQL server 2008 and trouble shooting
    7)      Features of BizTalk Editor with VS2008
    8)      Creating Document Schemas
    ·                       XML Schemas
    ·                       FlatFile Schemas
    ·                       FlatFile Schemas generation wizard.
    ·                       EDI Schemas
    ·                       Property Schemas
    ·                       Implementing Debatching using Envelop Schemas
    9)      Creating Transformation documents
    ·                       Document Mapping
    ·                       Debugging Maps in VS2008
    ·                       Exploring built in funtiods for mapping.
    ·                       Developing custom funtiod components
     10) Designing Orchestrations
    ·                       Features of orchestration designer
    ·                       Designing workflows using orchestration designer
    ·                       Exploring different shapes available
    ·                       Exploring different components of orchestration
    ·                       Applying transformation in orchestration
    ·                       Using .Net library inside Orchestration
    ·                       Exception Handling in Orchestration
    ·                       Developing BizTalk assemblies using Visual studio
    ·                       Configuring BizTalk runtime
    ·                       Working with Co-relation sets
    ·                       Consuming web service inside orchestration
    ·                       Exposing orchestration as web service
    ·                       Exposing orchestration as WCF Service
    ·                       Using info path
    ·                       Implementing Parallel Convoy
    ·                       Implementing Sequential Convoy
    ·                       Debugging orchestration
    ·                       Packaging BizTalk artifacts as a MSI file.
    ·                       Configuring ports at deploy time
     11) Creating pipelines
    ·                       Creating custom pipelines
    ·                       Creating custom pipelines components
     12) Using different Adapters
    ·                       Configuring different adapter’s native adapters
    ·                       Configuring different adapters for WCF service
    ·                       Using RFID and Swift adapters    
     13) Business Rule Framework
    ·                       Composing Rules
    ·                       Deploying Rules
    ·                       Importing and Exporting Rules
     14) Administration       
    ·                       Using BizTalk type Browser.
    ·                       Using Web Service Publishing Wizard
    ·                       Using WCF Service Publishing Wizard
    ·                       Working with BizTalk Explorer
    ·                       Using BizTalk Administration Console
     15) Working with Health and Activity tool
    ·                       Debugging BizTalk Orchestration
    ·                       Tracking messages
     16) Working with Business activity monitoring
    ·                       Creating different BAM artifacts
    ·                       Deploying BAM
    ·                       Administration of BAM
      15) Working on Use Cases

    Wednesday, December 15, 2010

    what is a Proxy

    A proxy is a CLR class that exposes the interface representing the service contracts.
    The proxy encapsulates every aspect of the service contract: its implementation technology, platform, location and communication transport .
    Proxy along with the service contracts methods also has some more methods which support life cycle of proxy and the connection to the service