Saturday 25 April 2009

Network and programmng framework

According to Hughes' demonstration, he just use a standard API to build the chat application which runs through TCP/IP socket. In brief, this is a client/server application, the chat server is responsible to read messages from the source chat clients through one thread and broadcast them to all connected chat clients through another thread, and the main thread is handling new connections. Every new ChatClient will connect to the ChatServer; this ChatServer will hand the connection to a new instance of the ChatHandler class that will receive messages from the new client. Within the ChatHandler class, a list of the current handlers is maintained; the broadcast() method uses this list to transmit a message to all connected ChatClients. The following illustrates the operations of the Char Client Server system.


Buyya (2002) defines 'the Grid is a type of parallel and distributed system that enables the sharing, selection, and aggregation of geographically distributed "autonomous" resources dynamically at runtime depending on their availability, capability, performance, cost, and users' quality-of-service requirements'. The Grid is “distinguished from conventional distributed computing by its focus on large-scale resourcesharing, innovative applications, and in somecases, high performance orientation”.

Peer to Peer (P2P) is somewhat like a Grid but Ledlie et al. (2003) gives a statement that ' P2p's focus on decentralization, instability, and fault tolerance exemplify areas that essentially have
been omitted from emerging Grid standards, but will become more significant as the system grows'.

The Grid community is currently authoring a Web Services-oriented API called Open Grid Services Architecture (OGSA). The next generation of Globus us intened to be a reference implemetation of this API (Ledlie et al. 2003). P2P computing has been widely used for file sharing, distributed computation and anonymity. The pure P2P computing will not have server or client but every computer is a node in the network.

The development of the Grid and P2P will move to non client server model, more decentralised model. This will be good for massive information sharing and storage.

Comparing CLR and JVM

Microsoft .NET’s Common Language Runtime (CLR) and Java’s Java Virtual Machine (JVM) are the most popular web application development frameworks. Without installing either one on your computer, many web applications will be able to run on your computer.


The .NET framework's Common Language Runtime (CLR) is much similar to Java Virtual Machine (JVM), in terms of garbage collection, security, just in time compilation (JIT).


Java platform views the Internet world as one language running on different operating systems (OS), whereas .NET framework views the world running on one OS with a programmers having choice of multiple languages. Therefore Java platform interpolates multiple operating systems, and .NET framework interpolates multiple languages. Therefore, SUN Java does not focus on the GUI development as we know the server side programming does not really need GUI. On the contrary, Microsoft dominates the client side desktop market.

So far Microsoft has issued three development tools including C#, VB.NET and C++, including for developments plus five execution containers hosting this runtime, namely: ASP.NET, Windows Shell, VBA scripting host for Office suite, Visual Forms container and IE (Internet Explorer). Much like Java it contains a rich set of API and lib.

Besides, Microsoft has done an excellent job to standardise .Net framework CLI/CLR in European Computer Manufacturing Association (ECMA) and standardise Simple Oject Access protocol (SOAP) through W3C. These will help to take hold the web application development market.


References

Banerjee A 2001, .NET framework comparison with Java Architecture, Mindcracker Network, viewed 26 April 2009, <http://www.c-sharpcorner.com/UploadFile/abanerjee/DotNetforJava11292005023419AM/DotNetforJava.aspx>.


Buyya R 2002, Grid computing info centre, viewed 24 April 2009, <http://www.gridcomputing.com/gridfaq.html>.

Hughes M 1997, Building an Internet chat system, Multithreaded client/server chat -- the Java way, Javaworld, viewed 23 April 2009, <http://www.javaworld.com/javaworld/jw-01-1997/jw-01-chat.html>.

Ledlie J, Shneidman J, Seltzer M & Huth J 2003, Scooped, Again, Harvard University, viewed 24 April 2009, <http://iptps03.cs.berkeley.edu/final-papers/scooped.pdf>.

No comments: