Hiitch Server Design Overview  

August 8th, 2007

Comment icon1 Comment

Server Design Overview

The Hiitch server is a multi-threaded application server that you can tune to scale it to your desired hardware setup. It also implements customizable security features that you can use to secure your own network’s integrity and privacy. Hence, understanding some of the key concepts in its design implementation is important. We will begin by describing the detail interaction process that goes on in the server that is unique to every individual Hiitch network implementation.

Server Interaction Process
Before any information is communicated between the client and the server, the clients will first request for the authenticity of the server. Each client has an associated digital certificate that ties it to a particular server. The client will then verify the digital signature to see if the content is coming from the intended server and proceed to send its confidential information to sign in to the server. This whole verification process is unique to each network. During the server installation process, our default script will assist you to generate a set of public and private key pair, also known as a digital certificate, that identifies your particular network. Without generating this digital certificate and exporting the cert to your clients, the integrity of your network can be easily compromised. Once the verification process is correctly completed, the clients will start a new secure session with the server.

Server Threading Model
Once a secure session has been authenticated and started on the server, its threading model kicks in. All clients requests are harvested and then independently processed by a pool of worker threads. You can tune and configure the total number of threads you want as socket harvesters and the number of worker threads attached to each socket harvester. The flexibility of the threading model will enable you to control the performance ratio between accepting requests and processing instructions on each server. Socket harvester threads are responsible for receiving incoming requests and then queue them up for processing by worker threads. Worker threads are responsible to resolve incoming requests to a combination of instructions and then processing those instructions to satisfy the requests. The result of this design is a very advance, efficient and scalable server that you can optimize with your dedicated hardware setup.

Server Performance Considerations
The Hiitch server was also designed to work with other techniques that can help you to easily and cheaply scale your network. A few of these techniques that you can use in combination are load balancing, network file system (NFS), high availability and etc. With a good amount of bandwidth, you can improve your social network performance by load balancing multiple Hiitch servers on a few old computers sharing their storage space using NFS. Hiitch servers will work seamlessly across the entire cluster of machines as if they were one single computer. High availability is a build in feature on Hiitch servers, although not extensive but it should be reasonable enough to meet your average needs.

Future Server Developments
Future developments will move toward a peer to peer (P2P) Hiitch servers system with clients that can connect across different networks securely and dynamically.

If you are interested to read more, other earlier technical articles about Hiitch can be found here.

File iconFiled under: Tips and Tricks, Features User iconby geek | Tack iconAdd Comments
AddThis Social Bookmark Button

Software Components Overview of Hiitch  

August 1st, 2007

Comment iconNo Comments

The Hiitch platform consists of three basic software components. These components are aggregated together on the desktop to produce a seamless real time social networking system. In due time more components may be added to provide richer functionality and online services but we will just focus on these three components for now.

Hiitch Components OverviewHiitch Server
The server is the most critical component of the entire platform. It manages all the critical information and the security of the platform. The Hiitch server is a very advanced piece of software. It understands complex instructions and allow the clients to interact with it through pure XML. It was designed to function very much like our human brain. At the core, it is preloaded by a set of generic instructions that are common to many online services provided by web servers. However, it is far more advanced than today’s web servers in the way it processes and understands information. A typical interaction with the server starts with the client communicating a set of XML instructions to the server. The server then processes the client’s XML request and resolves them into a combination of runtime instructions. These instructions are then aggregated to perform a complex operation. The server will also determine at this point if the requesting client is part of the system and is authorized to carry out those operations. If all is well, it executes and processes the request and returns any results. Each interaction between the server and the client are done on a dedicated pool of threads that provides the parallel processing nature of the server. Depending on your hardware, you can decide on how you want to scale the server to meet your number crunching needs by tuning the threading model. You can also easily customize the server’s runtime behavior and operations by adjusting the instruction set that it is preloaded with. We will discuss more about the details of the server on another post. ;)

Hiitch IM Server
Hiitch was never meant to be an instant messaging (IM) system. IM in Hiitch is just another feature that we provided as a means of communication and not its defining characteristic. Hiitch is a social networking platform which has IM facilities among many others and not the other way around. With that said, the IM facilities in Hiitch is very much a peer to peer (P2P) system. The IM facilities should be more accurately called a routing facility than a chat server. The reason for this is that, the IM server does nothing more than route the interaction between both clients to each other. It does no processing except to work with the Hiitch server to determine if the clients are authorized to use the system and to notify both parties of any incoming initiation for interactions. There is a need for this routing facility because many networks are not designed or configured to work with a P2P system. The IM facilities on Hiitch is still very much a work in progress and you will see more of it in later stages of our development.

External Services
External services are not connected to the Hiitch server in any way. Client developers are free and encouraged to implement facilities and features of their own through this avenue. Although external services are not considered part of the Hiitch platform, but it is still part of the social interaction process that the user is experiencing on their desktop. We have implemented two examples on the client that we thought was useful. The first one is the delivery of interesting events as an autosuggestion to the user based on his/her location and profile. The second is the real time updating of the user’s shout message and default picture to our web widget that can be found on our blog. Developers desiring to extend this portion of the Hiitch platform do not need to understand how the Hiitch system functions but are still able to integrate their software into our social networking experience.

You can read more about Hiitch’s Network Connectivity Overview here.

I hope that this article will get you excited about developing with and on the Hiitch platform. You are encouraged to sign up an account with our default network and use it as a means to contact us or interact with other developers of the Hiitch platform. Just download the default client and join us today as part of our community!

File iconFiled under: Tips and Tricks, Features User iconby geek | Tack iconAdd Comments
AddThis Social Bookmark Button

The Technology Behind Hiitch  

July 24th, 2007

Comment icon5 Comments

This is the first of many technical articles that we will be releasing as we begin our work to bring Hiitch to you as promised in our previous blog postings. We will basically focus on the technology behind building a complete desktop social networking platform like Hiitch and how you can better utilize it for your own purposes without reinventing the wheel. Your suggestions and feedback will be greatly appreciated. You can also write to us about what you would like to know regarding the technologies behind Hiitch.

Network Connectivity Diagram

Hiitch is designed and developed to build a vibrant online community on the desktop. It delivers things of interest such as new people and events to the user by analyzing the user’s profile. It does automatic match making and has an array of features to allow users to interact online (eg. IM, file sharing, photo sharing, community forums, etc) at real time. All these are done securely on the desktop using technologies such as digital signature verification, SSL, data encryption and etc.

Another discussion on Hiitch’s security features can also be found from our previous posting:

How Secure Is Hiitch?

Hiitch is basically (or partially) a client and server networking model. It is not intended to work with web proxies as they post as a big security risk and information leak. All communication done on Hiitch has to be done with direct connections to either the server or the client. A peer to peer model (p2p) for the clients is not used because not all networks allow p2p technologies to work correctly. Some networks hide their computers with transparent proxies to better protect their internal network which result in p2p connection problems. Other disadvantages include the fact that users must have enough know how to configure their home or private network to work with p2p solutions (port forwarding, firewall, DMZ and etc). Often than not a home or private network consists of a group of computers (LAN) and this will require multiple IP addresses not available to most home users. P2P is still a very good networking model and we are still experimenting on how best to combine both p2p models and the more traditional client server models to produce a best of both world solution.

Internally, Hiitch uses a technique similar to remote procedure call (RPC). We will discuss this in more detail in a separate post. ;-) All communication data in Hiitch is transmitted using XML. This decision was to allow the client and server to become technology independent and open up possibilities to “just in time” instruction discoveries. So regardless of the programming language used to build the server or client, the only requirement for them (to communicate) is understanding XML. Each instruction(s) send from the client to the server is decrypted (when necessary), parsed and resolved into a set of runtime instructions. These instructions are then checked to see if they are allowed to run. Finally, the instructions are then executed on the server and any results available are returned to the client.

We hope this article will get you excited about Hiitch and the technology behind it. Our hope is that we can build a strong community of experts who are interested and willing to work with us to produce ground breaking social networking technologies for the generations ahead. Join our community today!

File iconFiled under: Tips and Tricks, Features User iconby geek | Tack iconAdd Comments
AddThis Social Bookmark Button

Let the world hear you, Hiitch Shout! widget  

June 21st, 2007

Comment iconNo Comments

Have you noticed the cool widget on the right side of our blog? It’s our new Shout! widget. This web widget collaborates with Hiitch on the desktop by aggregating live shout messages from our members at real time. We hope to use this concept widget to bridge the distinct line between web and desktop applications by delivering a seamless and interactive solution across both platforms.

To interact with Shout!, you need to install Hiitch first. If you are an existing Hiitch member, simply type a message into your Hiitch shout box or change your display picture. The widget will catch those changes and display it live. Shout! widget allows your web buddies to check out new and cool people on Hiitch without the need to access it.

You can grab this widget for free right now on our community page and display it on your blog, personal website or social network profile.

File iconFiled under: Features User iconby Adam Soh | Tack iconAdd Comments
AddThis Social Bookmark Button

Hiitch event matching  

June 5th, 2007

Comment iconNo Comments

Event matching keeps you informed of events that you care about in real time. This new feature will track feed items from eventful and automatically notify you of upcoming events that matches your profile settings. When an event is found, it will be send to your inbox under “Autosuggestion”.

You can refined the events matched by telling Hiitch to filter out those events that you don’t wished to receive. Check on the “Don’t suggest these type of events anymore.” and Hiitch will drop the keyword used for monitoring these events.

Tips:

You can request Hiitch to generate more accurate matches by making sure the following fields on your profile are set correctly.

  • Country
  • City/State
  • Zodiac Sign
  • Occupation
  • Interest


Use keywords instead of long sentences when you state your interest.

File iconFiled under: Features User iconby Adam Soh | Tack iconAdd Comments
AddThis Social Bookmark Button