| Amit 的个人资料All about BizTalk Server...照片日志列表 | 帮助 |
|
|
5月10日 Virtual PC, VM Ware WorkStation and now Virtual BoxIt has been long time from when I am using Virtual PC from Microsoft; I have also tried Virtual Server from Microsoft. But there performance were not up to mark when you have guest OS which have heavy software’s like BizTalk, SQL , MOSS which does lot of disk I/O as well as lots of CPU too. With the ageing of these guest VM the performance of these decreases a lot. Both Virtual PC and Virtual Server were enough for me until I needed a “x64 Guest OS”. I then went for “VM Ware WorkStation”, just for x64 Guest OS. The performance was *OK*. The present Laptop configuration which I have is · DELL Latitude E6400 · Intel Core 2 Duo CPU T9400 @ 2.54Ghz · 4 Gb RAM · 250 Gb Hard disk · Windows Vista x64 Enterprise Virtual PC on top of this configuration allows you to run only 32 – bit guests with ok performance but if you are working on BizTalk, MOSS etc.. You will feel that it should be better. Virtual Server also results in almost the same performance. With VM Ware WorkStation you will get capability of Hosting x64 Guests, which is one of the important things. Though our team was using VM Ware with 32 –Bit Windows 2008 with VS 2008 SP2, CS 2009, and Azure SDK etc, the performance was better as compared to that of same things running on VPC 2007 and we were satisfied with it. Lately one of my colleagues pointed me to Virtual Box, it has been only 1-2 days I am using this but I am impressed. · You can point to both of you VPC Machines and · VM Ware machines · Open Source And it also provides you a Seamless Mode, which allows you to run Guest programs seamlessly with the host OS. See the below image in which I am running Windows 7 as guest on x64 Vista Enterprise. And you can see · Task Bar of Vista and Windows 7 · Calculator of Vista and Windows 7 · And Media Player of Vista and Windows 7 The performance also seems to be good. So …go and try Virtual Box.
The thing which are left is try these 1月30日 Expression Encoder and C#
If you are planning to use Expression Encoder to encode your videos and audios, now you can all do this using OM of Expression Encoder. There are three options available 1. Use Existing Audio and Video profile like VideoProfiles.HardwareDeviceH264Small and AudioProfiles.WmaForZune 2. If you want to use some custom profiles you can save the profiles and then use them 3. The Last is when you use presets, which allows you to have the max control on the out put videos/audios..
1月5日 Windows Azure and the APTCA(AllowPartiallyTrustedCallersAttribute) gotcha
I have divided this article into three parts and that will make you understand some of the gotcha with Windows Azure. 1. Windows Azure and Live Mesh 2. Windows Azure and .NET Services 3. Windows Azure and WCF Services
Windows Azure and Live Mesh If you are planning to have Live Mesh integrated with you Windows Azure applications in that case you just can’t use the Live Mesh assemblies like · Microsoft.LiveFX.Client · Microsoft.LiveFX.ResourceModel etc..etc.. As these assemblies cannot be used from your Windows Azure code guess why? The reason being these assemblies are still not APTCA signed. And you will get a security Exception if you do this. So if you want to do functionalities from your Windows Azure Application like Connecting to Live Mesh, Creating folders, files, deleting files and folders you just can’t use these assemblies directly. The beauty of Live Mesh is that it supports pure REST based calls; in that case you can use all the functionality of Live Mesh from Windows Azure using “System.Net.Http.HttpWebRequest” only. For this I highly recommend Fiddler2. http://www.fiddlertool.com/fiddler/ which will definitely help do create you HttpRequest objects.
Windows Azure and .NET Services If you are planning to integrate .NET Services from your Windows Azure code, you will face the same problem as you faced when you tried using the Live Mesh assemblies, i.e. you just can’t use assemblies like · Microsoft.ServiceBus · Microsoft.Workflow.Activities etc..etc.. The reason being same these assemblies are still not APTCA signed. What if you want to call Service Bus Services from Windows Azure code? The only option is, when you host you Service Bus services use bindings like “Microsoft.ServiceBus.WebHttpRelayBinding” Now in this case if you want to call this service from your Windows Azure code you do not need to have “Microsoft.ServiceBus” assembly referenced. You can call this service using plan…vanilla…our old and simple “System.Net.Http.HttpWebRequest” What if you want to call Workflow Service from Windows Azure code? If you want to use Workflow service from an Application you have to do a sequence of steps like 1. Create an instance of Workflow 2. Start the workflow instance 3. Now you can call this instance The first two steps of above are not possible directly when you try to do this from your windows Azure code because in that case you need to have “Microsoft.Workflow.Activities” assembly referenced, and you can’t use this assembly from your Windows Azure code. The last step of the above i.e. Call a cloud workflow instance. You can do this using “System.Net.Http.HttpWebRequest” from your windows Azure code.
Windows Azure and WCF Services
If you want to call and host WCF services in your Windows Azure application you can only use the Partial Trust profile of WCF.
At last if you are planning to develop you Windows Azure application you should know some of the above gotcha, as this will help you to know what is and what’s not possible from Windows Azure Applications.
12月15日 BizTalk Server 2009 and ESB Guidance CTP 2.0BizTalk Server 2009 beta is now available on Microsoft connect
BizTalk Server 2009 brings you some new functionality like
· Support for
o Windows 2008 Server
o Windows Server 2008 Hyper-V
o Visual studio 2008 SP1
o .NET Framework 3.5 SP1
o SQL Server 2008
· Also BizTalk 2009 now comes with a new UDDI services which is based on UDDI 3.0 standards
· BizTalk RFID Mobile is also available
There are some other enhancements too…
I installed BizTalk Server 2009 on Windows Server 2008 with Visual Studio 2008 SP1 and SQL Server 2008, and the setup was pretty smooth.
ESB Guidance CTP 2.0 is also out.. 11月19日 Cloud Computing Demo - .NET Services - Virtual Tech DaysI will be presenting a session on .NET Services on 25th November 2008 at Microsoft Virtual Tech Days. Register here to attend the session … http://view.atdmt.com/action/inmidv_VTDNov08REGISTERNOW_2
The session will go into details of .NET Services i.e. Service Bus, Workflow services and the Access Control Service.
The Session also showcases an application built using Windows Azure, .NET Service Bus, SDS and Live Mesh on which I and Lyle Dodge worked on.
11月8日 Experience with Microsoft .NET Workflow ServiceLately I was working on Microsoft Cloud Workflow services, and with some good new things you always get some limitations too… At present the Cloud workflow comes with some basic activities and using then we can create some workflows, call Service Bus, make Http Requests., control access to them, and define some rules and some more….. And yes you will get good scaling, management without investing into hardware, you also get a portal for management of workflow instances and if you don’t want to go to portal always you can always use the workflow API to manage them. But some features I didn’t like… · Unlike a typical workflow whose instance is created when ever a request comes, in .NET workflow service we have to do some sequence of steps before making a call…surprised, YES? o Create an instance of workflow either through portal or using API o Explicitly start it.. and now off course you can call it. But here is one more trick. When you create an instance you get an instance Id, and the url to which you have to send a request depends on several things and one of them is the instance id. o So for you the Request url is always dynamic as it depends on workflow instance id which is a GUID. o The Request URL looks like this · The activities which are presently there are fairly limited. · And if you are using CloudXPathRead and CloudXPathUpdate activities in your workflow make sure that the request you pass them should have correct type i.e “"text/xml"” otherwise the data will be Binary in WF and your WF will crash. · One more feature which I would love to see is to have a local deployment server, so that we can debug these, unlike at present we have to always deploy them in the cloud and we cannot debug themL. · And the last thing which is really important if you are planning to call cloud workflow from your Azure applications. You cannot create workflow instance and start them as the assembly which has these API cannot be called from Partial trust, and your Azure applications always run under that .. a big hindrance which Microsoft should really look into. 10月31日 PDC 2008 VideosThe PDC 2008 is over. There were lots of big announcements from Microsoft, their cloud platform (Azure, .NET Services, SDS), update on Oslo, Windows 7 and the list goes on…. People who were not able to attend this conference can download and watch video from here 8月7日 Cicada Resorts KabiniOn 1st and 2nd of August this year I was at Cicada Resorts Kabini..It is 220 km from Bangalore and a nice place for a weekend trip
You can find some of the snaps here 6月16日 Bangalore to KodaikanalAfter a lot of planning and delays my trip to Kodaikanal was finally scheduled. It was mid May and the temperature in Bangalore was in late 20’s so I thought this is a good time to go to a hill station, and which other then Kodaikanal in southern part of India. Kodaikanal is 2,195 m (7,202 ft) high on Palani Hills in the Western Ghats. I booked my bus tickets to and from Kodaikanal through a KPN agent in Bangalore. It was raining in Bangalore in the night when we left to Bommanahalli, from where we have to catch the bus to Kodaikanal. The bus started at around 10:30 pm from Bangalore. Kodaikanal is around 500 km from Bangalore. In the morning at around 7:00 AM the bus reached Palani. Kodaikanal is around 65 km from Palani. Just after palani there is 65 km of ghat section. These ghat sections are one of the best which I have seen. The journey from Palani to Kodaikanal took around two hours and it was really beautiful. We reached Kodaikanal at 9:30 in the morning. After 12 hours of tiring journey, we checked in a hotel and had some rest. We had lunch and then went out for some sightseeing.
DAY 1
In the afternoon during our lunch it started raining heavily. But soon it stopped and the weather was cool again. We first went to the kodai lake which was very near to our hotel and also near to the KPN Bus stand.
Kodai Lake is quite big and has boating facilities. There were lots of shops all around the lake.
After spending some time near Kodai lake, we went to see Bryant Park. It is a small and beautiful park near the lake. We spent around an hour there relaxing and having some snacks. After that we went to see Coaker’s walk near to Bryant part. Coaker’s walk offers some of the very beautiful sceneries which you see from Kodai. We spent most of the evening there, had a long walk upto the end of it. We took some pictures there. When we were at the end of the Coaker’s walk it become foggy and cold. We had some coffee there.
All these locations were quite close to each other and you can see all these places by having a good evening walk. No need to hire city taxi. DAY 2 I booked Kodaikanal sightseeing through my hotel travel agent. A 15 seat mini bus came at 9:30 in the morning for Kodai Sightseeing. The mini bus is one of the good options for sightseeing as the guide is also with you and it is a cheap option. Various places which were covered were. Coaker’s Walk, Green valley view, Piller Rock View, Devil’s Kitchen, Kurunji andavar Temple, Bryant Park. The bus dropped us at Kodai lake at around 4:00 in the evening. After that we planned to have cycle ride around the lake. It was fun to ride. After about 1 hour of cycling we decided to have some snacks, We went to a Tibetan restaurant. We had some momo and some other Tibetan dishes. It was good refreshment. After having that evening snacks we did some shopping and then went to the hotel for rest.
DAY 3
We checked out of the hotel in the morning, after that we had two options either for a trip to a village or for a tracking trip. We choose tracking and went for that.
The tracking started with some waterfalls and a difficult journey for us. The water falls were quite good but not so big.
After that we went to see Dolphin’s Nose view. We had to walk at least 1 hour to reach there but the scenes from the Dolphin nose were just amazing. In our way back it started raining and thundering, at least we had an umbrella with us
At last we reached to the top where our bus was waiting for us. We then went to a 100 year old church.
The bus dropped us at 4:00 clock in the evening near the kodai lake. We spent some time there. At 6:30 we took the bus to Bangalore 5月6日 UI for SQL Server Data Services Code Name SitkaSSDS is a new offering from Microsoft and which shows its promise on investing in S+S and SaS. It is an Online, On Demand, highly scalable and query processing Web Service. See here It consists of Authorities, Containers and Entities, where in Containers are not defined by schemas (Tables are defined as schemas) but as a name value pairs. It also provides a very good query processing capabilities. You can get integrated with it using the provided SOAP or REST interfaces..The interfaces are quite simple and good. However, there are still some good things missing and one of the things is a UI for SSDS. Using the SOAP interfaces, it did not took me too much of time to create a UI for SSDS for query processing. This Tool supports. · Connect to the SSDS · Add Entities · Delete Entities · Update Entities
5月2日 Playing with Microsoft Virtual EarthLast week I had some spare time and I thought to look into Virtual Earth offerings from Microsoft. i.e Microsoft Virtual Earth, your can find it here I found it a bit interesting and thought to spend some time playing with some of the API provided with the SDK. Soon I was able to create a simple ASP.NET application integrated with Virtual Earth, with some basic functionality like Search, Zoom, Find route etc. See a screen shot of my application You can find a very good Virtual Earth Interactive SDK here
I also tried using MSR Map Cruncher, but as detailed view of Indian region is not available on the Virtual Earth , integrating Map Cruncher with Virtual Earth did not look that good..
Nevertheless, you will find some of the feature in Virtual Earth SDK to be very interesting like 3D view, Birds View etc.
There is a very interesting Case study , which you will find interesting. Find it here 3月6日 Taking collaboration to a new level using
Great going ... 3月3日 WS-Addressing support in BizTalk 2006 R2WS Addressing enables the use of various other headers in the SOAP envelope apart from the headers, which exists when you are using WS-I Basic profile. Some extra elements which exists when you use WS-Addressing are MessageID, RelatesTo, To, Action, From, ReplyTo, FaultTo All these extra headers can be used to do asynchronous Interactions. For ex.
We will see how to implement asynchronous message exchange pattern using WS- Addressing
Use of WCF Adapter support calling of Web Services without using proxy. You have to set some extra properties when using Dynamic Send ports.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MssgToSend(WCF.Action) = “SOAP Action”
MssgToSend(WCF.SecurityMode) = "None";
MssgToSend(WCF.TransportClientCredentialType) = "Windows";
MssgToSend(WCF.EstablishSecurityContext) = System.Boolean.Parse("true");
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//Asign Port Properties
DynamicSendPortSync(Microsoft.XLANGs.BaseTypes.Address)= “End Point Uri”
DynamicSendPortSync(Microsoft.XLANGs.BaseTypes.TransportType)="WCF-BasicHttp";
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
There is one more workaround, which you have to do, by default the FaultTo property is not promoted, so you cannot access it within the Orchestration. To use it you have to write custom pipeline component in which you can promote it. Use of ReplyTo
ReplyTo can be used for asynchronous messaging
Use of MessageId, Relates To
These can be used to correlate the response with the request message. So while sending the Request to Service we have to initiate a correlation using “MessagID” and while receiving the response, we have to promote the “Relates To” so that proper correlation can happen. However, correlation in BizTalk can be done in various other ways too.
Difficulties in implementing asynchronous message pattern using WS-Addressing in BizTalk
1. By default “FaultTo” is not promoted and so you cannot access it with in Orchestration, you have to do the promotion using custom pipeline component.
2. Correlation using MessageID and RelatesTo has to be taken care by the developer not the infrastructure.
3. The Response message which the service sends does not show in the wsdl of the Service. But you can have the Schema of the message shown using
<extensions><behaviorExtensions></behaviorExtensions></extensions> in the App.config files.
See ESB Guidance for more … http://codeplex.com/esb
4. There are some other headers which are of concern like EndPoint Reference see here for more http://www.w3.org/Submission/ws-addressing/#_Toc77464319 12月20日 How to get the status of running orchestration instances..When you have long running business processes which runs for days, months and years, they tends to get dehydrated many a times. There are many times when we want to get the status of running business processes, where it is, at which state it is dehydrated, at which point is it in the whole business process etc. By status here, I mean different things like · At which stage of the business process the running instance is. o For ex.. Is the PO approved by Manager and if it is escalated Sr. Manager etc. · In which state the instance is o Ready To Run o Active o Etc… · At which shape the running instance is dehydrated.
Knowing at which stage of the Business Process is the running instance? You can know at which stage your business process is, by implementing BAM. While creating the BAM view create a Progression Dimension. For more on how to create a Progression Dimension see the BizTalk Server 2006 Tutorials àTutorial 5 Business Activity Monitoring àCreate Progression Dimension See details here http://msdn2.microsoft.com/en-us/library/aa578100.aspx
Knowing at which State the running instance is? WMI is a very power tool for managing BizTalk related things. These things can be done very easily using WMI. For example the following code Displays all the running instances and there state.
using System;
using System.Management;
using System.Windows.Forms;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\MicrosoftBizTalkServer",
"SELECT * FROM MSBTS_ServiceInstance");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("MSBTS_ServiceInstance instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("ServiceName: {0}, InstanceID: {1}, ServiceStatus: {2}", queryObj["ServiceName"], queryObj["InstanceID"], queryObj["ServiceStatus"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
} This comes from the WMI code creator, you can download it here. http://www.microsoft.com/downloads/details.aspx?FamilyID=2cc30a64-ea15-4661-8da4-55bbc145c30e&displaylang=en
The above code shows the status of InstanceID as numbers, you can translate them as following. This table comes right from BizTalk documentation.
Description
Value
Ready to run
1
Active
2
Suspended (resumable)
4
Dehydrated
8
Completed with discarded messages
16
Suspended (not resumable)
32
In breakpoint
64
Knowing at which shape the running instance is dehydrated
There is a very good article on this , which you can grab it see it here http://blogs.msdn.com/biztalk_core_engine/archive/2007/03/31/hidden-gem-in-biztalk-2006-r2.aspx
In this article Lee tells about a new column added to instances table in the msgbox which shows the shape on where the Orchestration is dehydrated.
The following store procedure when given the InstanceId returns a guid and a XmlDocument. The guid is the shape at which the Orchestration has been dehydrated and XmlDocument contains all the shapes in an Orchestration. You can then make some XPath queries through the XmlDocument and find the guid to know the shape at which the Instance has been dehydrated.
GO
/****** Object: StoredProcedure [dbo].[GetProcessInstanceStatus] Script Date: 12/20/2007 17:28:48 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetProcessInstanceStatus]
@InstanceID uniqueidentifier
AS
BEGIN
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET DEADLOCK_PRIORITY LOW
SELECT top 1 [BizTalkDTADb].[dbo].[dta_ServiceSymbols].[txtSymbol],[BizTalkMsgBoxDb].[dbo].[Instances].[nvcLastAction]
FROM [BizTalkMsgBoxDb].[dbo].[Instances],[BizTalkDTADb].[dbo].[dta_ServiceSymbols]
WHERE
[BizTalkDTADb].[dbo].[dta_ServiceSymbols].[uidServiceId] = [BizTalkMsgBoxDb].[dbo].[Instances].[uidServiceId]
AND [BizTalkMsgBoxDb].[dbo].[Instances].[uidInstanceID] = @InstanceID
END
10月31日 Oslo announced….If you implementing SOA/BPM stuffs on Microsoft Platform (even if you are not, you may be interesting), the next big thing has been announced by Microsoft…Oslo. Therefore, what as a BizTalk developer you need to do…?
Does anyone have a time machine so that I can look into Oslo? Also, look at the MSE (Managed Service Engine) at codeplex. 9月27日 Download BizTalk Server 2006 R2BizTalk Server 2006 R2 "Developer Edition" is now available through MSDN Subscription.
9月25日 Collaboration using Microsoft TechnologiesToday I spent some time looking into MOSS 2007, yes too late for some people, but for people like me who have only worked on Systems Integrations and have no time to think beyond BizTalk, WCF, WF, some ASP.NET and BI too. SharePoint was a new thing to me, at least the hands on.. One of my good friends "Awwab” helped me in getting started with MOSS 2007. It seems that Microsoft has done a really good job with the MOSS 2007. Collaboration, Workflows, enterprise search, Enhances security, Business Data Objects, Wiki, Blogs, Alerts, KPI, Integration with Outlook.. and the list goes on…. For a complete list of feature comparison b/w SPS 2003 & MOSS 2007 look here..
Also some more good links here
So what do Microsoft has in its hands for Collaboration in an enterprise and across enterprises The office communication server has also evolved from “Live Communication Server”, with many features like “software-powered VoIP solution that can stand on its own or integrate easily with an existing PBX infrastructure”, IM, conferencing etc..
Looks like Microsoft stack provides some really good functionality..
But what is the future of collaboration, are companies trying some out of box thinking??? 9月14日 BizTalk RFID -- INfinity 510Yesterday I tried to integrate Infinity 510 with BizTalk RFID Services. And here are the results… You can definetly see the TAGS, and once you have the TAGS, you can use it any where. For details of BizTalk RFID Services look here.
8月26日 SOA Governance using Microsoft StackServices form the main components of a SOA system. But with the increase in number of services in SOA system, the complexity increases, managing these services becomes a burden. Logging, error handling, management portal, downtime, applying patches, upgrading and versioning of services and maintaining a registry forms some of the main hurdles in smooth running of a SOA system. The current Microsoft offering for managing the lifetime of services is not strong as compared to some of its other competitors. Microsoft UDDI implementation i.e. Windows 2003 UDDI Services, at present still support OASIS 2.0 standard, which in its self is quite a old one. So what to do when a company is using a Microsoft stack (BizTalk, WCF etc…) as its SOA implementation? · Microsoft has AmberPoint as its one of the SOA partners. Microsoft ESB Guidance has some integration with AmberPoint’s SOA Management system. This looks to be quite good, still have to evaluate its cons and pros. From the first look, it provides much functionality like Service Repository, monitoring etc. · BizTalk forms the core in Microsoft SOA stack. Also it is one of the main tools for ESB implementation using Microsoft stack. The Microsoft ESB Guidance has some cool components for the same. The ESB Guidance, has some good examples on integration with SOA Software. You can find some more details here. · The other option is using Systinet now HP. Microsoft should also have some plans for upgrading its UDDI implementation to OASIS 3.0 standardJ. 7月13日 Bangalore To MysoreThis was my first trip at Bangalore, started quite early in the morning, early 5:00 AM. All were ready by 6:00 AM and waiting for that driver which seems to be too over confident and smart which paid to us somewhere later in our trip. At last we started at around 7: 00 AM. Our first destination was “Sivasamudram”, there are two beautiful waterfalls, which we reached at 11:00 AM. We lost about one hour in our way to “Sivasamudram”, because of a small mishap with a truck in front and an Auto at rear of our “Toyota Qualis”, a small accident but this is a type of situation in which we often fall in India, a small thing made big by some people. At last we continued our journey to the beautiful water falls at “Sivasamudram”. Both of the waterfalls were just beautiful and amazing (Bharachukki and Gaganachukki) “The Bharachukki and Ganganachukki falls are created as the River Cauvery roars down a 75-meter gorge. The river divides around the 700-acre picturesque Shivanasamudra Island. On the one side, it forms the Gaganachukki falls and on the other side are the Bharachukki falls. It is said that the Gaganachukki falls are shaped like a large horsetail and Bharachukki is a jagged crashing cascade.”
We spent some time there, enjoyed a pleasant time. Clicked some snaps, and then continued our way to Mysore, the national highway 209, is under construction and the driver & the road gave us a bumpy ride. We reached Mysore at around 2:00 PM had a heavy lunch near the “Mysore Palace”. After having the lunch, we spent about an hour at the palace. The palace reminds us of the grandeur of a bygone era and is today an invaluable national treasure. Some of my friends did some shopping there, and then we left for “The beautiful Brindavan Gardens”.
“Brindavan Gardens” These beautiful gardens are laid out below the Krishnaraja Sagar dam built across the river Cauvery, the Dam which was engineered by Sir M. Vishveswariah. The Dam is 3:00 Kms in length. The garden spans in an area of 150 acres and I found it to be one of the best Gardens in India. Some beautiful fountains and off course the never forgettable “The music fountain”. I just loved that place, we spent some good time there, enjoyed the gardens and the engineering marvel.
Then around 8:00 PM we left for Bangalore. So the trip was really successful, I made some new friends, and had a blasting time with all of them. I am planning for some more trips in the near future in and around Bangalore or in the Southern part of India and hoping for some more good time here. |
|
|