Tuesday, December 26, 2006

My Resume

LAKSHMI KRISHNAN

OBJECTIVE
A DOTNET Senior Developer/Architect position in an organization seeking excellent track record in design, development, testing, production support and client co-ordination.

SUMMARY OF QUALIFICATIONS

 Over SIX years of experience as Windows (C#, VB.NET, Windows Forms, GDI+, VC++,MFC, VB) / Web Developer (ASP.NET, Web Services, XML).
 Experienced in architecting/developing N-Tier applications using UML with different Design Patterns and Smart Clients.
 Experienced in message integration using BizTalk 2006 and developed ,deployed business rules using Blaze Advisor 6.0
 Exposed to WCF, .NET 3.0 and BizTalk 2006 R2.
 Experience in Socket programming, Multithreading, Network programming, XML programming and client-server programming.
 Designed/Developed Systems for Financial, Banking, Retail and Ecommerce sectors.
 Experience in interfacing AS400 DB2 Mainframe applications with .NET/Biztalk.
 Hands on experience in entire Software Development Lifecycle (SDLC) with skills in coordinating between clients and developers.
 Experience in Creating UML diagrams and preparing Design and Functional spec.

EDUCATION
 Master in Software Systems (equivalent to M.S), BITS Pilani, India
 Bachelors of Computer Science and Engineering (equivalent to B.S), Madurai Kamaraj University, India
 Brainbench Certified C# Developer.

SUMMARY OF SOFTWARE SKILLS
.NET Languages
WCF,C#, VB.NET, ADO.NET, ASP.NET, XML, XSLT, XPATH

Programming Languages
VC++, VB,MFC, ATL COM , JavaScript, VB script, ASP

Database
Oracle 8i, 9i, SQL Server 7.0, SQL Server 2000, SQL Server 2005,DB2

Messaging
COM, COM+, MTS, DCOM, MSMQ, MQ Series, BizTalk 2004, BizTalk 2006

Versioning System
Visual Studio Team System, Visual Source Safe, CVS, Aldon, Bug Tracker

Tools
SQL DTS, MS Project, Visio, Install shield, Nunit, Bounds Checker, Blaze Advisor 6.0.


WORK EXPERIENCE
Feb’05 – Till Date PC Connection, NH, USA
Sr.NET Consultant

K2 Deal :
Deal is a Smart Client application which enables the account managers to create a quote for the customer, configure the customer shipping options, order items and lookup the status of the item till it gets reached to the customer.
 Developed Smart Client UI for shipping/billing and payment options.
 Stored the Order History as XML blob in SQL Server 2005 and archived.
 Consumed Trillium GeoCoder Web Service for Address resolution in Biztalk06.
 Developed BizTalk orchestration to get the pricing of the sku from AS400.

K2 Order Submission:
Once the AM orders the item, the order information is sent to JDE for further processing, where the customer credit is verified, invoiced and shipped.
 Developed BizTalk Orchestration to submit the order information to MQSeries using MQ adapter.
 Used Correlation Sets to asynchronously call another orchestration which receives the Message from MQ.
 Create Orchestration to update the status information to the SQL DB using SQL adapter.
 Created custom pipeline to convert the XML message to flat file format.
 Split the messages into Header/Detail format using Splitter pattern.
 Developed Winforms application to view the order details.

Customer ABCreate/ABUpdate:
Customer information created in K2SmartClient/ B2B is updated back to the AS400 database, so all the databases are in sync.
 Developed BizTalk Orchestration to Create/Update AB information in AS400 via MQSeries.
 Designed, Developed XML schemas, file formats and BizTalk Server 2006 orchestrations.
 Track/Debug BizTalk messages using HAT.
 Handled Errors, Enabled Transactions within orchestrations.
 Created Winforms to update/create customer information.

Incentive Compensation System:
ICS is a subsystem to calculate the federal gross profit for GOV Connection for a particular director and provide compensation at the end of the year.
 Developed Blaze Rules to calculate the Gross GP for a particular transaction using complex Business rules.
 Deployed the blaze rules as Web Service and Consumed in the BizTalk Orchestration.
 Handled Web Service response and Connection Timeouts in the orchestration.
 Created BizTalk orchestration to perform complex calculations using Biztalk auto mapper.
 Created Winforms to view the report of commissions and GP.

Sequential Search and Federated Search:
Customer information is spread out across two different databases in the data model. The requirement was to do a performance test and prove to the management the efficient way of search across different database using Biztalk 2006.
 Created WCF WebService to get the Quote from the oracle database.
 Created WCF WebService to get the Customer information from AS400 db.
 Created Biztalk Orchestration(SequentialSearch) to Consume the WCF webservice using Biztalk R2 WCF adapter, illustrated persistence points and Performance.
 Created Biztalk Orchestration(FederatedSearch) to Consume the WCF Services using Parallel Component and merged the results using Custom XSLT. The Custom XSLT created the Union/intersection of both the XML’s.
B2B:
 Involved in the modification,maintainence of the B2B website.
 Created Biztalk orchestration to receive the PO from different trading partners,analyse the PO and Invoked maps dynamically using custom pipeline which determines the type of the PO.
 Created Webforms to receive the order information from different vendor websites.

Feb’05 – Till Date Quill Corporation, IL, USA
Sr.NET Consultant
Advance Shipment Notification (ASN)
Advanced Shipping Notification (or ASN) is a standard EDI transmission that will allow vendors to notify Quill prior to a shipment against a particular Purchase Order arriving at the warehouse. It will alert us of what is on the truck prior to the truck arriving at our warehouse.
AsnXShipDB :
 The Asn EDIT/LOAD Process,a C# WebService, which picks the file from the Quill's AS400 FTP machine and converts the raw data sent by vendors into the database format.
 Utilized Observer pattern, class factory, singleton patterns.
Calculatelegacypoduedates:
 C# Console based application invoked by the AS400 Robot remote CL that will interact with AS400 DB2 database to retrieve every PO and calculate the accurate the delivery date, ship date, ship method and vendors shipping factory.
ASN Web Application :

 ASP ASP.NET WebForm will allow the user to view all ASNs for all vendors. The APP will also allow the user to select /flag all Shipments only for the vendors that are allowed to flow to MARC and send them to MARC. The user can delete any orders on a Shipment or full Shipments for any vendor.
ASnxMarc:
 This C# interface process will read all flagged ASNs from the previous APP and create a flat file that will be place in the MARC input directory. The following pseudo code attempts to further define this process.
ASNxEDI824:
 The 824 Extract process, a SQL DTS file loader reads all unsent errors and creates a flat file to be sent Quill’s AS400 and then to the Vendors via EDI.
 Technologies Used: C# Windows Service, WebService, ASP.NET, Design Patterns, AS400 DB2, SQL Server 2000,SQL DTS

Print Production Management System (PPMS)
 Quill Corporation is a subsidiary of Staples Inc. PPMS allows users to create imprint order from Staples, which eventually reaches Quill’s Order Entry System. Quill has purchased Medical Arts Press a company specializing in office supplies for the medical and dental professions. Imprint orders for Quill were going to be processed at Medical Arts Press and hence a system had to be developed that can be seamlessly integrated with the Quill’s existing business model. Print Production Management System has been developed to transmit the Quill’s imprint orders to Medical Arts Press.

EpmsxMarc, MarcxEpms
 Created C# Windows Service to exchange the Material information between Quill & Map and vice versa.The DataCollection, Material Adjusment,Material Transfer , Material Usage information are tracked and viewed and monitored by the users with the ASP.NET Web page.
 Technologies used: C# Windows Service, .NET Component, ASP.NET,ODP.NET, SQL Server 2000, Visio, Visual Source Safe,Microsoft Exception Handler Blocks.
EpmsxTransit :
 Created C# Windows Service to interact with the Staples OES via MQSeries.NET and process the orders accordingly and report the status back to Staples.
 Created ASP.NET WebForm to track the Status of the Orders at any point of time.
 Technologies used: C# Windows Service, .NET Component, ASP.NET,ODP.NET, SQL Server 2000, Visio, Visual Source Safe, MQ Series.NET

EpmsxMarcInvenSync:
 EpmsxMarcInvenSync is a C# Windows Service that will put inventory in MARC and Enterprise in sync by comparing locations in the two systems and overwriting the values in MARC with the values in Enterprise.
 Technologies used: C# Windows Service, ODP.NET, SQL Server 2000, VSS, Visio

QLIB :
 QLIB02 is a .NET shared assembly which has the all the class, interfaces to perform the following routing jobs like config access, registry,database,log,eventvwr access, Email,FTP,MQ Series Access.
 Technologies used: .NET Component, Microsoft Data Access Application Block, Microsoft Configuration Block, Microsoft Exception Block, MQ Series.NET, Design patterns
ContainerTracking
 Created Windows NT Service, to exchange information about the Container Status between Staples and Quill via MQSeries
 Created ASP.NET WebForm to view Container information for all the Warehouses.
 Created C# Console application, MQTransfer to create Queues, Queue Manager , Get/Put Single/Multiple messages to/from the queue.

Jul’ 03 – Dec’ 04 Canadian Imperial Bank Of Commerce, Toronto, CA
CTM/Onsite Co-ordinator
Portfolio Management System (PMS) :
 Portfolio Management System, ASP.NET web based application allows Portfolio-Managers to evaluate portfolio as a whole, trading off risk and returns for the entire portfolio.
 Developed a C# WebService to interact with the remote master database.


Exposure Simulation Module (ESM)
CIBC ESM is a risk management tool that allows risk & portfolio managers to better assess the creditworthiness of consumer credit and other types of loan portfolios.

Responsiblities
 Involved in entire life cycle of the project including Requirement Analysis,System Study, Design, Coding, Testing, Integration and Implementation.
 Co-Ordinate with Clients, Project Managers and Developers.
 Create Use Case, Class, Sequence - UML diagrams using visio.
 Designed 3-Tier architectures efficiently and extensively Utilized Design patterns.
 Extensively created Stored Procedures to optimize the code and Create SQL DTS to test data in Offshore.

ESMBatch
 ESMBatch is an Early Warning/ Forecasting system used to enhance portfolio management strategies and calculate clear measures of risk. This Model combines the historical portfolio data and credit industry trends to produce a forecast of expected performance. Monte Carlo analysis is then used to calculate the risk based on volatilities & correlations.
 Technologies used: C# Winforms, SQL Server 2000, SQL DTS, VISIO,Visual source safe, Financial Knowledge : Equities, Derivatives, Options

ESMConsole
 ESMConsole is a Risk Reporting tool, a desktop application used by top level management people that provide a graphical display of the risk calculated in ESMBatch.
 Technologies used: C# Winforms, C# WebService, Office Automation, COM Interoperability, GDI + , Printing Functionality.

Jun’ 01 – Jun’ 03 Echomail , India
Software Engineer

Echomail ® Customer Care (CC)
EMMonitor
 Socket based monitoring tool, which waits for the pulse information to be received from the application modules running on Client servers. The client a plug-in socket client class that can be embedded to any application module to add the pulse sending capability.
 Technologies used: C#, Asynchronous Sockets, Winforms, XML
Attitude Scope
 A desktop tool which can be used by top level management to get the graphical representation of varying Customer Attitudes real time. The three-tier architecture uses DCOM architecture to talk to the Database server and OCX Control to provide user interface.
 Technologies used: VC++ 6.0, Activex, Automation (Excel/Txt) , GDI, GDI+

Echomail ® Direct Marketing (DM)

EchoMail DM is a direct marketing platform for managing mailing lists and executing outbound e-mail campaigns (Sending large volume of Emails).
EMMailList
 Developed a Multithreaded Database pooling application, which connects to oracle database and inserts the data to configuration file using ADO & encrypts the Mail ID using ROT13 Conversion Algorithm.
 Technologies used: VC++, Multithreading, Encryption,Oracle 8i, STL

EMContentCreation
 Development of a tool EMWebScraper to download an HTML source of given URL and localize all the links inside the page so that it can be send out as HTML based Campaign.
 Technologies used: MFC, Sockets, HTML

EMMailBlaster
 Updations to the module EMCast to spawn 64 threads to handle Targeted Campaigns, Template based Campaigns, Segmented Campaigns and composite Campaigns and Implementation of sniffer technology.
 Developed a Windows NT Service, EMCampaignCounter to automate the process of obtaining the number of Campaigns sent to a particular person and Generating the Maillist depending on the Campaigns sent.
 Technologies used: VC++, ATL COM, ASP SendMail, Multithreading, Windows NT Service, and Visual SourceSafe

Call Manager
 Call Manager is a Web based technology call management system that automates the full range of activities for call centers. It integrates existing voice and data systems, manages outbound and call-blending applications, and provides Computer Telephony Integration.
 Designed and developed TCP/IP socket server to accept message from the external host system (Client socket) and updates the data (message) in backend database (Sybase) at runtime using C/C++, VC++, Winsock and MFC.
 Installed and configured MQ-Series on WinNT. Created Queue Manager and Queues.
 Designed and Developed Answering Machine Detector using C/C++, Winsock, MFC. In Call Center when Call Center server detects an answering machine tone it leaves a message and updates that Call record in the remote database to call the same record after 3 days. Coded to send messages using MQ-Series and updated the data in the Sybase database using (COM+/DCOM/ATL) ADO Object.
 One of the team member to develop Desktop front-end GUI application using HTML, JavaScript, Vbscript, ASP and provide a link between front-end GUI (Browsers) and back-end information servers (databases Sybase) using ODBC.
 Technology used: VC++ 6.0, MFC 6.0, Microsoft Speech SDK,ADO, ASP, MQ-Series, Sybase

Oct’ 00 – May’ 01 CellarStone, India
Application Developer

SyncUp
 SyncUp is a reliable file/folder synchronizer, a profile-based utility that automates synchronization process to run at a specific date and time in the background.
 Technologies used: VB, XML, Cryptography, Multithreading

BackTrackPro

 BackTrakPro is a powerful tool designed for an automatic backup of your critical data to work with removable media like Zip, USB, JAZ, CD-RW and mapped network connections.
 Technologies used: VB, XML DOM, MFC DLL, Cryptography, Sockets

HetroBackup
 HeteroBackup was developed as a tool to take backup of file systems, of various UNIX machines (Red hat Linux, Sun Solaris, HP-UX and IBM AIX) connected in network. Also contains device management part to administer devices being attached to the system without rebooting.
 Design and coding in C/C++ on Unix
 Wrote shell scripts to automate the required processes like scheduling backup jobs.
 Took backup by attaching external devices like tape drive in a heterogeneous network.

Friday, December 22, 2006

BizTalk 2006 - BTSTask

This Post is obtained from Matt Hall. Thanks Matt !!!

BizTalk 2006 comes with a handy new tool named BTSTask. This utility facilitates the execution of deployment tasks that you are able to perform from the BizTalk Administration console from the command line. This supercedes BizTalk 2004’s BTSDeploy and should be used in new scripts, as BTSDeploy may be removed in subsequent versions of BizTalk Server, although it is still supported in 2006.


BTSTask includes more functionality than BTSDeploy, adding support for the new functionality such as resources and MSI files:
Installing an application to the BizTalk Management database.
Adding resources to the application.
Exporting an application to an MSI file.
Export binding information to a file.
Import an application from an MSI file.
Import binding information from a file.
List resources for an application.
List all applications in the BizTalk Management database.
List the resources in an MSI file.
Remove an application from the BizTalk Management database.
Remove a resource from an application

The following example steps through a few commands used to provide a deployment using BTSTask. These have been consolidated into a single batch file which executes all the steps. Being a batch file you may therefore also call it from any automated deployment mechanisms you may have in place.

Step 1 – Set variables
set LOG_LOCATION=.\Logs\LogFile.txt
This step simply sets the location of where we will log the installation script results


Step 2 – Attempt to install the Application
BTSTask AddApp -ApplicationName:EAISolution >> %LOG_LOCATION%if %errorlevel%==1 ( echo Error Creating Application >> %LOG_LOCATION% goto :delete)goto :install
The next step attempts to create a new BizTalk application to the BizTalk Management database. This is the new container found in BizTalk 2006 that is used to reduce the management effort for applications. At this point we also include some error checking. If there is an error it is generally due to an application already existing with the same name, so we attempt to remove the existing application. This is handled at another step in the batch file.
Note that it would be unlikely for you to want to delete an existing application in a production environment, as you would probably manage any upgrades through versioning and the side-by-side capabilities available within BizTalk.


Step 3 – Attempt to Remove Existing Application
:delete
.\scripts\StopApp.vbs >> %LOG_LOCATION%
BTSTask RemoveApp -ApplicationName:EAISolution >> %LOG_LOCATION%if %errorlevel%==1 ( echo Error Deleting Application >> %LOG_LOCATION% goto :end)BTSTask AddApp -ApplicationName:EAISolution >> %LOG_LOCATION%
This section of the batch file only gets called if there is an existing application to remove. See the notes above. A custom WMI script written in
VBScript is called that attempts to get the application into a state whereby it can be successfully removed.
The BTSTask RemoveApp is then executed to remove the application specified. If we receive an error at this point then log it and simply go to the end. Otherwise the existing application has been removed successfully so create the application again.


Step 4 – Add Assemblies
BTSTask AddResource -Source:.\Assemblies\EAISchemas.dll -ApplicationName:EAISolution -Type:BizTalkAssembly -Options:GacNow,GACUtil >> %LOG_LOCATION%
BTSTask AddResource -Source:.\Assemblies\EAIOrchestrations.dll -ApplicationName:EAISolution -Type:BizTalkAssembly -Options:GacNow,GACUtil >> %LOG_LOCATION%
The next two lines use the AddResource command to add the two assemblies into the BizTalk application. Using the Type parameter we have specified we are adding an assembly resource rather than other resources such as BAM Definitions, Certificates, and Policies etc.
This will simply add the assembly to the BizTalk Management database, so notice the use of the GACNow and GACUtil options to handle GACing of these assemblies. Also as usual you must make sure you are installing the assemblies in dependency order, so that if one assembly depends on another then it must be installed after the assembly it depends on.


Step 5 – Add PostProcessingScript
BTSTask AddResource -Source:.\Scripts\StartOrch.vbs -Destination:.\StartOrch.bat -ApplicationName:EAISolution -Type:PostProcessingScript >> %LOG_LOCATION%
This next step adds a post processing script to application, the type being specified as with adding assemblies by utilising the Type parameter. You may now include pre and post processing scripts with your installation packages in BizTalk 2006 that get executed during deployment. This facilitates the execution of additional installation tasks, thereby making the process extremely flexible.


Step 6 – Import Bindings
BTSTask ImportBindings -Source:.\Bindings\EAISolution.xml -ApplicationName:EAISolution >> %LOG_LOCATION%
We then simply import our previously exported bindings. Exporting binding files from your BizTalk applications can now be achieved through the BizTalk Administration console and can be set at various levels within the hierarchy such as all bindings from a selected application, all bindings from a selected group or bindings for the selected assembly.


Step 7 – Create Manifest
BTSTask ListApp -ApplicationName:EAISolution -ResourceSpec:.\Logs\AppManifest.xml
For record logging purposes we then create a manifest of the deployed application. This is achieved through the ListApp command which lists all the artefacts in the application, along with the unique identifier (LUID) and type of each artefact. We use the ResourceSpec parameter to export this to an XML file.


Step 8 – Create MSI
BTSTask ExportApp -ApplicationName:EAISolution -Package:.\MSI\EAISolution.msi >> %LOG_LOCATION%
The final step is to create a complete MSI of the application. It is possible to export specific artefacts from an application into an MSI by using the ResourceSpec parameter, but in this case we simply export everything.
Don’t forget this is merely a very simple example of how the scripts are used and only used as a taster; you would take the commands and use them according to your environment and solution.

Thursday, December 21, 2006

Identify Persistence Points

Possible Questions:

1. What is Persistence in terms of biztalk?
The process of saving your running orchestration state at certain point is called persistence, in other words storing the state into Biztalk database.
2. What is Persistence Points ?
Events or stages, which triggers the persistence operation called persistence points. (i.e) Persistence points are those points in the orchestration that save the orchestration state to the database.
3. When do the event/trigger occurs to save the orchestration ?
Usual Scenario:

1. At the End of the Transaction Scope (Either atomic/Long Running) like SQL Commit
2. At the End of Orchestration like DB Close
3. Send Shape if not in Atomic Scope
4. Invoking a new process/orchestration using Start Shape
Unusual Scenario:
1. When an Orchestration Instance is suspended
2. When the system shutdowns in a controlled manner
3. When the engine determines it wants to dehydrate

4. Identify the number of peristence points in the following Biztalk orchestrations.

ODX1: Two send shapes being executed sequentially in the orchestration.


As per our theory, the two send shapes will have one persistence points each and
the end of the orchestration will have one persistence point. So totally , I guess it to be 3. But I was wrong, since the send shape is the last shape in the orchestration, the peristence point of the send shape and end of orchestration will be dispatched together. So the persistence point for the above ODX1 is 2.




ODX2: Two send shapes being executed sequentially in the atomic sh
ape.



As per our theory, Since the two send shapes are in the atomic scope, we don't have seperate persistence points rather they have a single persistence points at the end of the scope. Also When we note keenly, we could realise that the scope is the last shape, hence the persistence point for the scope and the end of the odx will be batched together. So this odx has only one peristence point.







ODX3: Two send shapes within a Parallel shape.

Biztalk by nature executes them in a sequential manner. Parallel branches do not necessarily mean they are executed on separate threads. Hence, even in this case, it results in sequential execution with two persistence points. Infact, in this case, the persistence point will not be batched with end of the orchestration and hence it peristence point is 3.






ODX4: Other Scenarios


A. No Persistence point, since the send shape is wrapped up in atomic scope.

B. Atomic scope end persistence

C. Start orchestration persistence

D. Break point persistence

E. Send shape persistence; note the send shape out of atomic scope.

F. End of orchestration persistence.

Totally , Its 5.
Hope the samples has helped you identify the peristence points.
5. Is there a tool to identify the persistence points in an orchestration ?
Yes, its the performance counters.
6. How to view the Performance Counters?
1. Go to the Start Menu and Select Run
2. Type in: perfmon and Enter
3. Performance Window should open up
4. Click on the + inside the window (or Ctrl-I)
5. Under Performance Objects, Select XLANG/s Orchestrations (note your host must be running)
6. Select the Counters from the list you want to watch, then press Add. You can get information on each by clicking on Explain.
7. Run your Orchestrations

Wednesday, December 20, 2006

Preparation Guide for 70-235

I would like to start writing articles which will help Biztalk 2006 developers to understand, learn and pass the exam 70-235. The article will cover all the skills measured for the exam. Happy Learning.

Skills measured by exam 70-235:
----------------------------------------------
Planning a BizTalk Application
Identify the application requirements
Plan the BizTalk Server environment for reliability and scalability
Design schemas
Identify the security requirements
Install BizTalk Server 2006 for a development environment
Developing and Debugging an Integration Application
Create a schema
Create a map
Create a pipeline
Configure connectivity
Configure message subscriptions
Track a message
Developing and Debugging a Business Process Application
Create and debug an orchestration
Configure correlation
Identify persistence points
Configure exception handling
Create business transactions
Consume and publish Web service
Create and configure role links
Implementing Business Rules
Compose business rules
Publish and deploy business rules
Enabling Business Activity Monitoring
Identify the steps required to enable business activity monitoring
Link the event source to the activity definition
Deploying a BizTalk Application
Choose a deployment method for distributing an application
Create a deployment package
Start an application
Test the deployment