Monday, April 10, 2017

Quick view on timeline of containerization techniques

Following article shows us a quick view on timeline of containerization techniques.

Timeline of Containerization

Here we notice that basically it all first started in 1982!

Friday, December 21, 2007

Web Service Connection problems Dot .Net 1.1

Issue:
The underlying connection was closed: An unexpected error occurred on a receive.
Web Service Timeout problems occurring on Client and Server sides.
Server => Web Service Host
Client => Web Service Caller

*
The underlying connection was closed: An unexpected error occurred on a receive.
This is a client side problem.
And it can be solved by avoiding HTTP KeepAlives - with Dot Net 1.1

For other issues we need to increase the timeout values at various levels.

*
For Server side, adjust the proper connection timeout value in the IIS web server properties.
*
if the request takes too long on the server, the web server could time it out.
*
Also adjust this value: in the config file (web/app .config) (Read more on msdn)
The default is value 110, a little less than 2 minutes. See documentation for detail.

For Client Side (Timeout: 'give up on the server if you don't get a reply back with a certain time'.);
To specify the amount of time to wait for the request to complete, use the Timeout property.
A Domain Name System (DNS) query may take up to 15 seconds to return or time out. If your request contains a host name that requires resolution and you set Timeout to a value less than 15 seconds, it may take 15 seconds or more before a WebException is thrown to indicate a timeout on your request.
*
There are two timeout values that need to be adjusted based on the situation.
Timeout, ReadWriteTimeout
*
HttpWebRequest.Timeout = The number of milliseconds to wait before the request times out. The default is 100,000 milliseconds (100 seconds).
*
HttpWebRequest.ReadWriteTimeout = ReadWriteTimeout property controls the time-out for the Read method, which is used to read the stream returned by the GetResponseStream method, and for the Write method, which is used to write to the stream returned by the GetRequestStream method.
Or simply 'The number of milliseconds before the writing or reading times out. The default value is 300,000 milliseconds (5 minutes).'

Adjust these values before calling the Web Service (Method) or before making the WebRequest.

*
WebClientProtocol.Timeout Property
The time out in milliseconds, for synchronous calls to the XML Web service. The default is 100000 milliseconds.
(WebClientProtocol: Specifies the base class for all XML Web service client proxies created using ASP.NET.)
Setting the Timeout property to Timeout.Infinite indicates that the request does not time out. Even though an XML Web service client can set the Timeout property to not time out, the Web server can still cause the request to time out on the server side.
Note that:
WebClientProtocol
->HttpWebClientProtocol
|->SoapHttpClientProtocol
|->WebServicesClientProtocol
|->WebServiceClass

These properties of the WebClientRequest class and its derived classes all map to properties on the corresponding System.Net.WebRequest and derived classes.

*
I guess all this text above combined together would be helpful as it is described in a plain programmers way.

Further:
http://www.thescripts.com/forum/thread425852.html
http://www.thescripts.com/forum/thread427678.html
HttpWebRequest.ReadWriteTimeout Property
http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.readwritetimeout.aspx
HttpWebRequest.Timeout Property
http://msdn2.microsoft.com/en-us/library/system.net.httpwebrequest.timeout.aspx

Please do not hesitate to ask/discuss it any further through your comments.

---
hB

Thursday, October 25, 2007

Cloud Computing

Cloud computing is a popular phrase which is used for applications that are developed to be rich Internet applications (AJAXed - like Desktop Apps) that run on the Internet (or "cloud"). In the cloud computing paradigm, software that is traditionally installed on personal computers is shifted or extended to be accessible via the Internet. These "cloud applications" or "cloud apps" utilize massive data centers and powerful servers that host web applications and web services. They can be accessed by anyone with a suitable Internet connection and a standard web browser.

The architecture behind cloud computing is a massive network of "cloud servers" interconnected as if in a grid running in parallel, sometimes using the technique of virtualization to maximize computing power per server.

-------------------------
Google, the most visible example, took cloud computing a step further and directly challenged Microsoft by offering a suite of free word-processing and spreadsheet software over a browser.

Hundreds of companies in Silicon Valley are offering every imaginable service, from writing tools to elaborate dating and social networking systems, all of which require only a Web browser and each potentially undermining Microsoft’s desktop monopoly.

Microsoft is a late entrant to a set of businesses that are largely defined as Web 2.0, but the company is counting on its ability to exploit its vast installed base of more than one billion Windows-based personal computers.
The Windows Live service (MS Cloud Computing Initiative) — which is found at www.live.com — includes new versions of the company’s Hotmail and Messenger communications services as well as Internet storage components.

More:
http://www.gridtoday.com/grid/1833835.html
http://bits.blogs.nytimes.com/2007/08/24/why-cant-we-compute-in-the-cloud/
http://seattletimes.nwsource.com/html/businesstechnology/2003854913_msftcloud27.html

Saturday, October 20, 2007

Running multiple versions of the Framework in ASP.NET

Like any good technology, ASP.NET continues to evolve as new versions are released.
But, like anything else, this brings with it a number of considerations.
Microsoft has done a great job of allowing multiple versions of the framework to run side by side.
Version v1.0, v1.1 and v2.0 can all run together at the same time on the same server.
There are a couple catches to consider with running multiple versions of the framework side by side.

Worker Process is the one that hosts a particular framework version. There is one per version of the framework. (v1.0, v1.1 and v2.0).
If a process for a particular version of the framework doesn't exist, as soon as it's needed, a new process will be spun up.
This allows multiple versions of the framework to live beside each other in IIS.
aspnet_wp.exe is the worker process with IIS 5, w3wp.exe is the worker process with IIS 6.
IIS 6 was an impressive upgrade that brought with it some new concepts. One key new concept is Application Pools.
A system administrator is able to create groups of sites and place each site in its own group.
Whenever a site needs to run, a w3wp.exe process will start for its application pool if it hasn't already started.
This brings with it a number of welcome security, performance and management advantages.
You are now able to specify your own Identity User which can be unique per Application Pool.
With IIS 6 there is one problem:
You cannot run more than one version of the framework in the same application pool in IIS 6.
While multiple versions of the framework can co-exist on the same server, they can't co-exist in the same process.
If you attempt to run multiple versions of the framework at the same time in the same process, the 2nd version that tries to run will fail with the following error:
Server Application Unavailable
The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request.
You will also receive Event ID 1062 in Event Viewer that says:
"It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process."
What to do
Fortunately, the solution is very easy.
Simply create a new application pool and move the site that you will be upgrading to that pool.
So basically you can group all the sites to a different application pool which is all specific to framework version and windows user credential.

Ref: Understanding Application Pooling in IIS 6.0

Friday, September 28, 2007

What is TIBCO?

Tibco Software Inc. (Nasdaq:TIBX) is a software company, with headquarters in Palo Alto, California.
TIBCO is a leading provider of total business integration solutions delivering infrastructure software that enables businesses to seamlessly integrate business systems in real-time. TIBCO's products enable the real-time distribution of information through patented technology called The Information Bus™, or TIB®.
TIBCO is adopted in diverse industries including financial services, telecommunications, electronic commerce, transportation, logistics, manufacturing and energy.
TIBCO's global customer base includes more than 1,200 customers such as Cisco Systems, Yahoo!, Ariba, NEC, Enron, Sun Microsystems, GE Capital, The Limited, Delta Air Lines, Philips, AT&T and Pirelli.

Tibco’s main architecture is based on an information-bus oriented system concept. Whereas all the information that is used by the multiple systems passes through one information-bus. Tibco commonly refers to this information-bus as the “TIB”.

Benefits of a TIB-based architecture include:

Easy to create new subsystems – TIB allows developers to create new subsystems, modify existing subsystems, and add new services without having to change the UI or a subsystem’s code.
Easy to move subsystems – A subsystem supplying data can be moved to other geographic locations without changing the subsystems that consume the information it supplies. This is important for fault tolerant operation where new subsystems can take over immediately upon the failure of another subsystems.
Easier to develop applications – Saves development costs and time because the developers can use a tested API for communications rather than have to design, develop, implement, test, and maintain their own infrastructure code.
Faster to develop – Developers can concentrate on applications and business requirements and not have to write and test an infrastructure. Applications will also be faster to develop because they will be linked into existing and well-tested libraries. Developers will not have to create code necessary for inter-subsystem connectivity
Easier to maintain – Personnel can concentrate on the application code. The middleware layers are enhanced and maintained by professionals who are specialists in that type of software
Easier to change – Changes will be easier to make to subsystems because they will be independent of their data sources and their data consumers
Highly scaleable – The system will be far more scaleable because subsystems and hardware can be added easily and quickly to meet new user demands.
Location transparency – The system cal exploit TIB’s subject based addressing to allow system components to be located dynamically, rather than being hard-coded. This supports a range of system migration needs.
Easier to monitor – The system can use TIB/Hawk for monitoring.
Error management – The system will be able to log and respond to system and business level errors by generating TIB-based notifications or advisories.

Tuesday, September 25, 2007

Process XML in Dot Net -> Parse to Object

Here we consider a small aspect found while parsing XML string.
We are using Dot Net (1.1) but we process xml in general (non-dotnet specific version) using the XPath expressions.

Situation is we have XML string format as:

< ns="http://domain.com/codename/MessagesXMLSchema.xsd">
<>task< /ns:EventType>
<>TASK_COMPLETE< /ns:EventName>
<>02000016000004630144000100000070< /ns:JobId>
<>02000016000004630154000200000070< /ns:TaskId>
<>2007-09-06T15:26:25+04:00< /ns:EventDateTime>
< /ns:XMLMessage>
= strXMLMsg



Scene 1:
Dim xmlDoc As New Xml.XmlDocument
xmlDoc.LoadXml(strXMLMsg)
strXPath = "/XMLMessage /EventName"
xmlNode = xmlDoc.SelectSingleNode(strXPath)
strData = xmlNode.InnerText
In this seen we will not be able to get our parsed data. And the issue is the inclusion of the namespace and its prefix.
So to get the parsed data correctly we have to use the way shown in scene 2.

Scene 2:
Dim xmlDoc As New Xml.XmlDocument
xmlDoc.LoadXml(strXMLMsg)
xsn = New Xml.XmlNamespaceManager(xmlDoc.NameTable)
XMLNamespace = "http://domain.com/codename/MessagesXMLSchema.xsd"
XMLNamespacePrefix = "ns"
xsn.AddNamespace(XMLNamespacePrefix , XMLNamespace)
strXPath = "/ns:XMLMessage /ns:EventName"
xmlNode = xmlDoc.SelectSingleNode(strXPath,xsn)
strData = xmlNode.InnerText
In this way we will get our data parsed correctly!

I hope the situation mentioned above is somewhat helpful.
Any questions/issues/suggestions/imporvements - please mention them in your comments.

Have a nice time.

---
hB

Wednesday, April 25, 2007

Eclipse vs. Visual Studio at EclipseCon 2006

Eclipse vs. Visual Studio at EclipseCon 2006

By Matt Mondok | Published: March 23, 2006 - 11:32PM CT

Speaking at EclipseCon 2006, Java developer and independent consultant Madhu Siddalingaiah compared Microsoft's Visual Studio IDE to the open source development environment of Eclipse. One would be inclined to think that Siddalingaiah, being at EclipseCon and all, would give a bias presentation on the side of Eclipse. As it turns out, that's pretty much what happened.

Siddalingaiah began by giving Visual Studio kudos for being a great IDE for beginners; it supports multiple programming languages and can target several different environments. Siddalingaiah also noted that the IDE has plenty of features for more advanced users as well, but that's where all the praise ended.

http://arstechnica.com/journals/microsoft.ars/2006/3/23/3317

Sunday, February 04, 2007

IKVM

IKVM
IKVM can be described as a Java Virtual Machine for the .NET CLR.

IKVM is an amazing new technology that conclusively breaks down the barriers between Java and .NET. So if you are creating a .NET application, but want to use that cool new Java library that doesn't yet have a .NET counterpart, here's a solution for you. Conversely, if you are a Java developer who wants to call a .NET library from Java, IKVM is what you need.

http://www.onjava.com/pub/a/onjava/2004/08/18/ikvm.html

Wednesday, August 02, 2006

MapReduce

[I found it interesting..]

MapReduce: Simplified Data Processing on Large Clusters

MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key. Many real world tasks are expressible in this model, as shown in the paper.

Programs written in this functional style are automatically parallelized and executed on a large cluster of commodity machines. The run-time system takes care of the details of partitioning the input data, scheduling the program's execution across a set of machines, handling machine failures, and managing the required inter-machine communication. This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system.

http://labs.google.com/papers/mapreduce.html
http://labs.google.com/papers/mapreduce-osdi04.pdf
http://labs.google.com/papers/mapreduce-osdi04-slides/index.html

Sunday, May 28, 2006

How To Test Web Services?

How to Test / Load / Stress Web Services?

If Services are ASP.Net XML Web Svc then:
http://support.microsoft.com/default.aspx?scid=kb;en-us;815160

Else (No Get/Post - HTTP SOAP Messages)
?
Is there any free and properly-easily working solution?