MsgConnecting Desktops and Mobile Devices

Oct 17
13:29

2010

Eugene Mayevski

Eugene Mayevski

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

MsgConnect is a cross-platform communication framework by EldoS Corporation. In this article we will discuss its benefits and usage of MsgConnect in certain situations. You will be surprised how easily many problems can be solved using MsgConnect.

mediaimage
First of all,MsgConnecting Desktops and Mobile Devices Articles what do we call a framework? We assume that this is a common code that provides generic functionality and can be selectively overridden or extended by user code to provide specific functionality. Framework is a special case of software library, and its key features are reusability and a well-defined API.

Second, what we should take into account talking about a mobile device? Most of them are smart phones, PDAs (Personal Digital Assistant), tablet computers and netbooks.

Talking about PDA, we have to mention a group of EDA, Enterprise Digital Assistants, which are very much like PDA, but in some sense are more specific, designed and programmed for certain enterprise tasks, often offering integrated data capture devices like barcode and smart card readers.

The most PDAs are working on specialized operating systems, some of them of Windows family (e.g. WindowsCE, Windows Mobile, Windows PocketPC, Windows XP Tablet Edition), others on Linux, Palm etc. For smart phones very popular are Android and BlackBerry operating systems.

Taking all this in mind, we will call a mobile device some relatively small computer that works on one of platforms mentioned above. Though sometimes you may hear or read speculations about notebook vs. desktop computer, in this article we don't assume a conventional notebook to be a mobile device; instead we will refer it like desktop. 

So What?

Lets imagine that you have to develop a software of enterprise level, for managing something like plant, or business office, or… or hotel! Why hotel? Why not. Everybody knows something about hotel, and nobody knows everything. Its technology is complex enough to utilize most of mobile devices mentioned in previous section. For example, you will need to create a database, and most of mobile devices (EDAs of hotel personal) will communicate to it. Hotel needs a strong security system to identify its staff and to check their access rights for this or that. This system is logically to be implemented on data capture devices integrated in EDAs, like fingerprints scanners. 

It is very likely that our hotel is not appears to be a brilliant one in sense of tourist business, but please don't bother about it. We need this hotel not to enjoy a holyday but to demonstrate the abilities of MsgConnect, which are much better.

What Do You Have to Care About?

First, you have to design a database, and of course, it will not reside on mobile device, consider placing it somewhere in a reliable place. Maybe  use cloud storage? This database will hold everything about your hotel, from actual visitors and reservations to vacant rooms to drinks and foods available and required. 

We will not bother about business logic of the system, but anyway you have to think about a lot of desktops or notebooks for high-level managers in offices. From time to time they will make requests to the database, something like: "How many vacant rooms do we have for now? Is it enough scotch on stock? What is the visitor NN check out date?"

And finally, don't forget about mobile devices! Each hostess should have an EDA, and each barman as well, with barcode or smart card readers available. Some of security guys probably will have EDA with automatic identification system embedded.

Not to mention a climate control, which should be of course automatic and driven by mobile devices with embedded systems, but occasionally some responsible person must have a possibility to interfere in its functionality, optionally from desktop or from EDA. 

Multiple Platforms

PDAs and EDAs are available on a variety of different platforms like clones of Windows (e.g. WindowsCE, Windows Mobile, Windows PocketPC, Windows XP Tablet Edition), Linux, Palm and others. A great part of smart phones are working on the Android and BlackBerry operating systems.

It is very likely that you will have to deal with several different platforms. You hardly can manage all these things on single or on few related platforms; obviously this will make the task of communicating between computers not trivial. 

PDA Operating System vendors usually provide a way for synchronizing data between desktop operating systems and their product, however there are numerous serious limitations. Fortunately MsgConnect gives you the way to overcome these limitations.

MsgConnect is based on the concept of exchanging messages — blocks of data that have a fixed part with predefined fields and optionally have a data part. Using messages you can send commands to other processes, receive replies, transfer the data across multiple processes and do plenty of other useful things.

Having taken the concept from Windows Messaging subsystem, MsgConnect however is not limited to Windows only. MsgConnect was successfully ported to different platforms.

There are available implementations for Windows, Android, BlackBerry, Linux, FreeBSD, QNX, Windows CE/ PocketPC, Java™ (SE/EE, ME) and .NET platforms. More platforms are to come.

How Can You Manage?

It's not easy. It's very difficult to connect dozens of computers working on different platforms and make them communicate to each other unless you are using MsgConnect.

MsgConnect (read Message-Connect) simplifies your application development significantly by taking care of all the low-level tasks for you. It was designed to be small, fast and effective and at the same time to provide complete service. With MsgConnect you won't have to write and painfully test multithreaded server code, you won't need to split the data stream into messages and dispatch these messages. All your efforts will be directed at business logic whilst MsgConnect takes care about data and messages transfer.

MsgConnect was born as emulation of Windows Messaging subsystem for sending messages across the network. The idea was successful and Eldos' engineers extended it. Now MsgConnect is widely used by developers to implement data transfer between applications running on the same computer or on various mobile devices like Android, BlackBerry (through Java Mobile), iPhone (!++ version for MacOS X and iPhone/iPad).

While utilizing the same concept of message queue that was used in Windows, MsgConnect provides much more reliability and functionality like identification, on-the-fly compression, encryption and integrity checking of the message being sent and received. With MsgConnect you don't care about transferring data, instead you just send messages (which can contain all necessary data).

With MsgConnect you use methods similar to Windows' messaging subsystem — SendMessage to send a message with a confirmation of a second party, PostMessage to transmit data without confirmation, SendMessageCallBack to send a message and be notified through user-defined callback routine.

Client-server technology

Naturally, some of the tasks for your hotel management can be completed using traditional client-server technology, for example most of requests to database concerning stock value of something, booking of rooms etc. 

Client-server architecture gained significant place in current networking due to ease of logical organization and maintenance. The concept of conversation between a client and a server is not hard to design, create and document.

However from the technical point of view creation of effective server software can be a long and painful process. The things can become much worse if the server needs to send the unrequested data to the client, i.e. act as a client itself. On this stage one has to redesign the complete protocol stack to add such a possibility.

MsgConnect dramatically simplifies the process of data exchange by offering a flexible and efficient messaging paradigm by providing an independent bi-directional conversation via single connection (you just split one connection into two). Moreover, MsgConnect provides a simple way to create event-driven communications between clients and servers, and such a scheme is usually more easy to design and is much more scalable.

Peer-to-peer data transfer

Each node in distributed system based on MsgConnect can act as both client and server simultaneously. MsgConnect can use single connection to transfer messages independently in both directions. This kind of functionality might be very powerful when your application has to alarm some certain PDA or return back some signals, for example low stock of food or drinks. 

Standard Protocols

With MsgConnect you use all the power of standard protocols including TCP and UDP, if your target platform supports them. Of course you may use for that purpose your OS' native API, for example WinAPI in case of Windows. But choosing this way you will have to write different code for each platform, while choosing MsgConnect and using its API, you obtain really reusable code.

With MsgConnect you will be able to utilize the power of heterogeneous systems and networks ranging from Unix servers to Windows-based PDAs, EDAs and smart phones.