You can send your web part ID to you javascript when the page is loaded.
Try
Guid ((Microsoft.SharePoint.WebPartPages.SPWebPartManager)WebPartManager).GetStorageKey(this);
As for saving your web part properties, instead of going through SOAP you could create a service that uses the SPLimitedWebPartManager using the storage key.
Something like this should work.
using (SPWeb web = new SPSite(webUrl).OpwnWeb()){
using (SPLimitedWebPartManager manager = GetLimitedWebPartManager(PublishingWeb.IsPublishingWeb(web) ? PublishingWeb.GetPublishingWeb.DefaultPage.Url : web.RootFolder.WelcomePage, System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared))
WebPart part = manager.WebParts[storageKey];
//Do web part stuff.
}
}