Cloud Based Jabber Client Aaron Munger and Devin McBride Team 6 Web Services.

Slides:



Advertisements
Similar presentations
An Erlang Implementation of Restms. Why have messaging? Separates applications cheaply Feed information to the right applications cheaply Interpret feed.
Advertisements

National Database Templates for the Biosafety Clearing-House Application (NDT-nBCH) Overview of the US nBCH Applications.
.NET 3.5 SP1 New features Enhancements Visual Studio 2008 SP1 New features Enhancements Additional features/enhancements.
Copyright Hub Software Engineering Ltd 2010All rights reserved Hub Document Manager Product Overview.
Eralp Erat Senior Software Developer MCP,MCAD.NET,MCSD.NET.
Technical Architectures
A SOLUTION: 2X REMOTE APPLICATION SERVER. 2X REMOTE APPLICATION SERVER.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Microsoft Cloud Services Training and Certification Presented by Name Goes Here, Title.
Mobile Agents for Integrating Cloud-Based Business Processes with On-Premises Systems and Devices Janis Grundspenkis Antons Mislēvičs Department of Systems.
User Group 2015 Version 5 Features & Infrastructure Enhancements.
FTP. SMS based FTP Introduction Existing System Proposed Solution Block Diagram Hardware and Software Features Benefits Future Scope Conclusion.
Introduction SOAP History Technical Architecture SOAP in Industry Summary References.
Windows.Net Programming Series Preview. Course Schedule CourseDate Microsoft.Net Fundamentals 01/13/2014 Microsoft Windows/Web Fundamentals 01/20/2014.
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Visual Basic.NET,.NET Framework and Visual Studio.NET Outline 1.7Introduction to Visual Basic.NET.
Getting Started with Windows Azure Name Title Microsoft Corporation.
Framework Universal & Infinite Software Solution.
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
Todd Kitta  Covenant Technology Partners  Professional Windows Workflow Foundation.
ICINETIC Experts in.NET technologies and architectures.
Your First Azure Application Michael Stiefel Reliable Software, Inc.
Drag and Drop Display and Builder. Timofei B. Bolshakov, Andrey D. Petrov FermiLab.
CSCI 6962: Server-side Design and Programming Web Services.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
European Plant-to-Enterprise Conference October 27-28, 2009, Utrecht, The Netherlands Mdf MES Development Framework Massimiliano Papaleo.
Microsoft SharePoint Server 2010 for the Microsoft ASP.NET Developer Yaroslav Pentsarskyy
Visual Studio 2008 and.NET 3.5 provide seamless support for all of the protocols and techniques popular in Web 2.0-style applications. Visual Studio.
Lap Around Visual Studio 2008 &.NET 3.5 Enhancements.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
 An essential supporting structure of any thing  A Software Framework  Has layered structure ▪ What kind of functions and how they interrelate  Has.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
MGT305 - Application Management in Private and Public Clouds Sean Christensen Senior Product Marketing Manager Microsoft Corporation MGT305.
Windows Azure poDRw_Xi3Aw.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Integrating and Extending Workflow 8 AA301 Carl Sykes Ed Heaney.
OE-NIK HP Advanced Programming Web services Standards and protocols Using web services Using web services with asynchronous calls.
Developing SQL/Server database in Visual Studio Introducing SQL /Server Data Tools Peter Lu.Net Practices Director Principle Architect Nexient March 19.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Automation Testing Trainer: Eran Ruso. Training Agenda Automation Testing Introduction Microsoft Automation Testing Tool Box Coded UI Test and Unit Test.
The Holmes Platform and Applications
Windows Communication Foundation and Web Services
PTC Navigate & Thingworx based App Development
Introduction ITEC 420.
DevOps with ASP.NET Core and Entity Framework Core
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
Introducing the Microsoft® .NET Framework
.NET Omid Darroudi.
Introducing the Windows Mobile development
Automate Custom Solutions Deployment on Office 365 and Azure
Platform as a Service.
Module 1: Getting Started
Web Development Using ASP .NET
Module 01 ETICS Overview ETICS Online Tutorials
Saranya Sriram Developer Evangelist | Microsoft
From Development to Production: Optimizing for Continuous Delivery
…and web frameworks in general
From Development to Production: Optimizing for Continuous Delivery
Introduction to Web Services and SOA
04 | Apps and SharePoint Chris Johnson | SharePoint Guru
REST Easy - Instant APIs for Your Database
Mark Quirk Head of Technology Developer & Platform Group
The Future is Now with ASP.NET Core 3.0
Running C# in the browser
Microsoft Azure Services Platform
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Presentation transcript:

Cloud Based Jabber Client Aaron Munger and Devin McBride Team 6 Web Services

Outline Introduction Legacy System –Design –Features MVC Refactor SOAP vs. REST SCRUM Revisited Azure Target System Discussion

Introduction SOAP – Service Oriented Architecture Protocol REST – Representational State Transfer XMPP – eXtensible Messaging and Presence Protocol –Open –Standard –Decentralized –Secure –Extensible Azure – Cloud platform used to build/host/scale web applications within Microsoft’s data centers

Legacy System Jabber-net Chat client Uses jabber-net XMPP library Message with any XMPP compliant library –Google talk –Miranda –Apple ichat

Legacy Design

Features Send/Receive messages Get Buddy List Add/remove buddy

Legacy System Sequence

MVC Refactor (a first shot) Jabber-Net client object was essentially the model with only specific interfaces exposed. WCF Service deployed wrapping Jabber- Net client object. MVC3 Application for client to interface with Jabber-Net web service Limited client to a single-user mode to reduce complexity.

Implementation 1

Analysis All Jabber-Net functionality was wrapped within the WCF web service. Jabber-Net client objects getting disposed of whenever server is not actively being used. –Instantiating static objects did not stop objects from being disposed. –Concluded that Azure web services must be handling server connections. Client actions were not being immediately seen.

MVC Refactor (a second shot) Azure provides a template called a Background Worker Role – analogous to a Windows System Service. If we maintain a jabber-client database with the current state of what we expect the Jabber client object to reflect, we can ensure all actions are handled immediately. Easily maintain database using the Entity- Framework. We have full control over when Background Workers get disposed. In other words, we can ensure it does not get disposed of at all.

Implementation 2

Analysis Actions are reflected immediately. Jabber client maintains it’s connections at all times. We gained message history functionality – something not included as part of the XMPP specification (Google extended this independently.) Fine grained control over all client actions.

SOAP Implementation Analysis Communication via SOAP was extremely easy to implement as the WCF framework abstracts out the communication process allowing the client to deal with ordinary objects. Allowed rapid software development due to abstraction.

REST Implementation Analysis Used a Lo-REST implementation using only GET and POST. Very fast but was complicated to configure. Services modified to REST services using simple.NET decorators. Greatly increased development time on the client side due to the extra overhead of parsing the rest objects.

SCRUM Analysis - Pros Encouraged the active breakdown of work. Allowed us to estimate duration and actual-development time for individual features. Active communication allowed us to overcome obstacles faster.

SCRUM Analysis - Cons Our team of 2 was hindered by the overhead of the SCRUM process. –SCRUM is intended to allow larger teams (7 +-2) to maintain an agile workflow. –In our case, the process was made much more complex by the need to have a product owner, scrum master et al, developers, and testers. Most of our work was done in segments on specific days, so the agile process requirement of meeting daily did not actually happen in most cases.

Azure - Pros Fast to develop – literally copied files from normal mvc3 and wcf service projects. Easy to deploy – simply package and upload. (re)Deployment can be setup and completed directly through visual studio. Easy to maintain test and production environments in the Azure cloud. Abstracts out the infrastructure allowing us to not worry about the system the projects are running on.

Azure - Cons Local debugging is much more complex due to increased security policies on the Azure side. Entire solutions need to be uploaded every time you want to publish. –An empty project is approximately 50MB. –Takes a long time! Costly. Approximately $140 costly for around 2 weeks of 3 instances for this little azure demo.

Discussion SOAP encouraged rapid software development. REST is incredibly light weight, and fast. Do we prefer one over the other?

Questions?