130 likes | 244 Views
The problem …. Chat clients are mostly based on servers : Server crash will affect all users. High server overload. Speed of the server is a bottleneck. Old architectures = happy hackers. Outdated and basic interfaces . The solution …. Peer to peer (p2p) Less work for the server.
E N D
The problem …. • Chat clients are mostly based on servers : • Server crash will affect all users. • High server overload. • Speed of the server is a bottleneck. • Old architectures = happy hackers. • Outdated and basic interfaces .
The solution …. • Peer to peer (p2p) • Less work for the server. • Communication between two computers is bound by their own bandwidth performance. • Once a couple is paired, they’re Independent. • WPF (Windows Presentation Foundation) • More powerful GUI, supports hardware Acceleration. • User Friendly interfaces. • Series Graphics – 3d Animation . • Happier user !
Previous trials …. • Naturally, there has been various trials to implement peer-to-peer chat. although, problems were always related : • Bound to illegal programs, e.g. file sharing clients. • Developed by high profile users for high profile users. • Limited purposes. • Complicated interfaces. • Developed with older tools • Have compatibility issues with newer systems. • Security and privacy vulnerability. • Lack of usage of newer technology and tools.
Technologies … • P2P: • ארכיטקטורת חיבור משתמשים ברשת שמבוססת על תקשורת ישירה בין המשתמשים. .Net: היא פלטפורמה לפיתוח של תוכנה , הפלטפורמה מספקת ממשק פיתוח אחיד הן לפיתוח אתרי WEB והן לתוכנות . • WPF(המחליף ל Windows Forms חלק מ .Net3) • פונקציות לגישה וניהול תקשורת בין מחשבים , עבודה עם מאגרי נתונים (Access,SQL) , אינטגרציה עם כלים חיצוניים כגון Expression Blend(הסבר בהמשך) • מערכת גרפית אשר מאפשרת ליצור מנשקים גרפיים מודרניים במערכות מבוססות Windows בנויה על הספריות של DirectX דבר שמאפשר האצת חומרה על מנת לאפשר יצוג גרפיקה תלת מימדית ואנימציה .
Tools …. • Microsoft Expression blend : • Editor for Windows Presentation Foundation (WPF) • Benefits from the hardware to accelerate better graphical user interfaces, e.g. animations ! • Integrates in the .NET framework, very smoothly integrates with programming languages like C# and visual basic. • Easy to use, with expression blend it’s relatively easy to pull off complex animations.
Tools …. • Microsoft visual studio : • Well known !!! • Integrates C# projects with Microsoft Expression Blend for more control. • The best editor for C# there is. • Powerful development tools, e.g. debugging
The architecture • Peer to peer • The server manages user requests: • Getting users list • Pairing with another user • Getting users information • All else is direct • All communication between paired users is directly handled between them independently from the server
Logic Flow Server Side Communication Collection of Methods Client Side Server UI (frmMain Form) Client UI -Login Window -Main Windows -Chat Window Manage Users Class • - Show UsersDB • - Add/Remove Users Authenticator (Protocol Class) -Creates&Compares Hashed Strings, using SH1 algorithm Main Class UsersDB Classs Friends List Local for each client User Info -Personal Notes
What we learned …. • We studied different communication protocols including peer to peer. • We learned and practiced how to integrate working on different tools into one product (i.e. Blend for UI and Visual studio for logic) • We learned and experienced the process of designing and implementing a software from scratch. • We learned how to create optimal design of user interfaces that helps make the product as easy as possible for the users.
What could we have done better ? • Better video conferencing • Opening video with more than two friends. • Integrate video into the chat window of the user. • Multiple Camera’s support/Give User More Controll • Allow Conference Recording • Automate the registration process. • Make chat more expressive (i.e. add emoticons) • Add more themes for the user to choose from.
Test drive ! • Animations are best seen in action ! Hold on to a showcase of the application !