Training - Managing .NET/J2EE Projects


Published on

The starting presentation for Project Managers who need to manage Microsoft .NET and J2EE Projects.

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Training - Managing .NET/J2EE Projects

  1. 1. December 7, 2008
  2. 2. <ul><li>Welcome and Introductions </li></ul><ul><li>Computer Networking Basics </li></ul><ul><li>Distributed Computing Fundamentals </li></ul><ul><li>Platform Wars – Java, .NET and the 3 rd front </li></ul><ul><li>You – the techie, manager and salesperson </li></ul><ul><li>Technology Buzzwords </li></ul>
  3. 3. <ul><li>Shashank Banerjea </li></ul><ul><ul><ul><li>President and Founder of Emjive Consulting LLC. </li></ul></ul></ul><ul><ul><ul><li>Working on various technologies including Java and Microsoft .NET on Windows and Linux platforms since 1999. </li></ul></ul></ul><ul><ul><ul><li>Masters degree in Computer Applications from Devi Ahliya University, Indore, Madhya Pradesh (INDIA) </li></ul></ul></ul><ul><ul><ul><li>Wrote my first piece of useful code in 1983 using BASIC on a 8-bit Atari computer. </li></ul></ul></ul>
  4. 4. <ul><li>Ask questions or comment at any time. </li></ul><ul><li>Fact: I do NOT know everything and can and probably will make things up!!!! </li></ul><ul><li>Feel free to share your experience. </li></ul><ul><li>Take notes to check later if you know things differently. </li></ul>
  5. 5. Section 1:
  6. 6. <ul><li>De-facto Standard of Computer to Computer Communication – TCP/IP. </li></ul><ul><li>Reason for the rise – dot com boom of the 1990s. </li></ul><ul><li>Replaced many proprietary protocols such as IPX/SPX (Novell), NetBIOS (Microsoft), Banyan Vines etc on LAN. </li></ul>
  7. 7. <ul><li>Relevance: Foundation of all new applications – enterprise or consumer. </li></ul><ul><li>No major application today can afford to exist in a silo. </li></ul><ul><li>Higher level application protocols depend upon TCP/IP stack to exchange information including Web (HTTP), Mail (SMTP, IMAP) and Instant Messaging (XMPP) </li></ul>
  8. 8. <ul><li>IPv4 Addressing – 32 bit address. Presented in canonical form as, where xxx: 0-255. </li></ul><ul><li>2 32 = about 4 billion computers on the Internet. </li></ul><ul><li>Classes of IP Addresses – A, B and C based on network size. D and E (Special Purpose) </li></ul><ul><li>Internal LAN IP address – 10.0.x.x, 172.16.x.x and 192.168.x.x </li></ul>
  9. 9. <ul><li>Types of TCP/IP communication – Stream and Datagram </li></ul><ul><li>Transport Layer: TCP = Stream; UDP = Datagram </li></ul><ul><li>Application bind to ports or channels on the transport layer. </li></ul><ul><li>Reserved Ports – 0 – 1024 </li></ul><ul><li>Max Port number – 2 16 = 65536 </li></ul>
  10. 10. <ul><li>Well known reserved port – </li></ul><ul><ul><li>TCP /80 – HTTP/Web </li></ul></ul><ul><ul><li>TCP/23 – Telnet </li></ul></ul><ul><ul><li>TCP/21 – FTP </li></ul></ul><ul><ul><li>UDP/226 – Windows File share </li></ul></ul><ul><li>TCP Applications – telnet, FTP, Web </li></ul><ul><li>UDP Applications – VoIP, Video Streaming, Network File sharing </li></ul>
  11. 11. <ul><li>Typical Communication </li></ul>Client Computer initiates communications over a known port Server designates a free port to continue communications. Client continues communication on the new port. Client Computer and server continue conversation. Client or server computer close communication port to end communication.
  12. 12. <ul><li>HTTP Communication: </li></ul><ul><ul><li>TCP based protocol </li></ul></ul><ul><ul><li>Default port: 80; Popular ports: 8000, 8080, 8090 </li></ul></ul><ul><ul><li>Request/Response only. </li></ul></ul><ul><ul><li>Stateless in nature </li></ul></ul><ul><ul><li>Client and Server may exchange or store information to maintain state and keep in sync. </li></ul></ul><ul><ul><li>Session ID is a commonly used information. </li></ul></ul><ul><ul><li>Secure Cousin – HTTPS – uses encryption </li></ul></ul>
  13. 13. Section 2:
  14. 14. <ul><li>Early Days - Concept originated in mid 1980s with large proliferation of PCs at workplace </li></ul><ul><li>Departmental servers become powerful enough to run multitasking OS such as UNIX, Netware OS. </li></ul><ul><li>Single Tier Application – file sharing, applications shared the same server (e.g. Unix shells) or bring over a local copy to the network node (e.g. DOS executables) </li></ul>
  15. 15. <ul><li>Next Evolution – Two tier – Client/Server applications. </li></ul><ul><li>Divided the application logic and database services at the minimum. </li></ul><ul><li>Typical Applications built on Visual BASIC, PowerBuilder, Oracle Forms </li></ul><ul><li>Limitation – not very scalable or manageable. </li></ul><ul><li>Limitation - Entire application built on single core language and platform. </li></ul>
  16. 16. <ul><li>First true industry standard for distributed computing – CORBA </li></ul><ul><li>CORBA – Common Object Request Broker Architecture. </li></ul><ul><li>Allowed developers to transcend language and platform. </li></ul><ul><li>Example – a Java developer on Unix platform could utilize objects of a C++ class on Windows platform – REMOTELY!!! </li></ul>
  17. 17. <ul><li>Microsoft in early 1990s came out with its own specification for distributed objects called DCOM or Distributed Component Object Model based on their previous COM model </li></ul><ul><li>Similar in concept and intent to CORBA, DCOM works only on Windows platform. </li></ul>
  18. 18. Local Application calls a Proxy Object Proxy Object calls connects to remote object container Proxy Object may utilize the services of an object broker to locate the remote container Remote container instantiates the remote object and provides the communication channel
  19. 19. <ul><li>Some popular technologies today : </li></ul><ul><ul><li>Web Services – SOAP/REST (cross platform/most popular) </li></ul></ul><ul><ul><li>Remote Method Invocation (RMI) and Java Message Service (J2EE environments) </li></ul></ul><ul><ul><li>.NET Remoting (Windows Environment) </li></ul></ul><ul><ul><li>Enterprise/Internet Service Bus </li></ul></ul><ul><li>Concept to keep in mind </li></ul><ul><ul><li>N-tier architecture </li></ul></ul>
  20. 20. Section 3:
  21. 21. <ul><li>Initially developed by Sun Microsystems to run on set top boxes. </li></ul><ul><li>First public implementation – 1995 with promise of Write Once, Run Anywhere principle. </li></ul><ul><li>First wave of programming capability was on Desktop and small downloadable programs on browser called – Applets. </li></ul>
  22. 22. <ul><li>By 1997, became the leading language to program on the internet browsers. </li></ul><ul><li>Server side component – Servlet, in June 1997 were introduced to generate to publish dynamic content based on user input. </li></ul><ul><li>Soon there was push for more complex and functional server side components like – Java Server Pages, EJBs etc. </li></ul>
  23. 23. <ul><li>Java – WORA magic </li></ul>
  24. 24. <ul><li>Java 2 Standard Edition (J2SE) </li></ul><ul><ul><li>Targets Client Applications – Desktop, Browser </li></ul></ul><ul><ul><li>Current version – Version 6.0 (7.0 in early beta) </li></ul></ul><ul><li>Java 2 Enterprise Edition (J2EE) </li></ul><ul><ul><li>Large scale enterprise applications </li></ul></ul><ul><ul><li>Current Version – 5.0 </li></ul></ul><ul><li>Java 2 Micro Edition (J2ME) </li></ul><ul><ul><li>Mobile and low powered devices </li></ul></ul><ul><ul><li>Current Version – 3.0 </li></ul></ul>
  25. 25. <ul><li>Popular Tools and Solutions </li></ul><ul><ul><li>JDK/JVM – Sun JVM, IBM, Apache Harmony </li></ul></ul><ul><ul><li>IDEs – Eclipse, NetBeans, JBuilder, WSAD </li></ul></ul><ul><ul><li>J2EE Servers - Apache Tomcat, Sun - Glassfish, IBM Websphere, BEA/Oracle Weblogic </li></ul></ul><ul><li>Related Concepts: </li></ul><ul><ul><li>Just in Time (JIT) Complier </li></ul></ul><ul><ul><li>Garbage Collector </li></ul></ul>
  26. 26. <ul><li>Prior to Microsoft .NET – Development on Windows Platform was very fragmented. </li></ul><ul><ul><li>Client Applications – Visual BASIC, Visual C++ and MFC, Borland C++ and Delphi with OWL </li></ul></ul><ul><ul><li>System Applications – Win32 API with Visual C++ and Borland C++ </li></ul></ul><ul><ul><li>Enterprise Applications – DCOM/COM+, DDE </li></ul></ul><ul><ul><li>Web Based Application – Active Server Pages, ISAPI (using C++ and COM/DCOM), ActiveX </li></ul></ul>
  27. 27. <ul><li>Microsoft .NET was a opportunity to consolidate competing APIs on the Windows platform and respond to threat of Java in the enterprise arena. </li></ul><ul><li>Promise – Code in ANY language but RUN on Microsoft .NET platform. </li></ul><ul><li>Reason - Windows platform is the lifeline for Microsoft revenue. </li></ul>
  28. 28. <ul><li>Cornerstones of the .NET platform </li></ul><ul><ul><li>Common Type System (CTS) </li></ul></ul><ul><ul><li>Common Language Runtime (CLR) </li></ul></ul><ul><ul><li>IL – Intermediary Language </li></ul></ul><ul><li>Common Type System – allows for unified representation of data expressed in different languages such that it been used across the .NET platform. </li></ul>
  29. 29. <ul><li>Microsoft .NET Development Stack </li></ul>
  30. 30. <ul><li>Microsoft .NET Framework </li></ul><ul><ul><li>Targets for client and server software </li></ul></ul><ul><ul><li>Current Version 3.5 (Version 4.0 in CTP) </li></ul></ul><ul><li>Microsoft .NET Compact Framework (CF) </li></ul><ul><ul><li>Targets handheld and mobile devices </li></ul></ul><ul><ul><li>Current Version 3.0 </li></ul></ul><ul><li>Microsoft .NET Micro Framework (MF) </li></ul><ul><ul><li>Targets low powered and embedded devices </li></ul></ul><ul><ul><li>Latest release 3.0 in October 2008 </li></ul></ul>
  31. 31. <ul><li>Microsoft .NET platforms also runs on non- Windows platform. </li></ul><ul><li>Result of Microsoft opening up the CTS and CLR specification to ISO for standardization and an Open Source effort called the MONO project. </li></ul>
  32. 32. <ul><li>Popular Tools: </li></ul><ul><ul><li>IDEs: Microsoft Visual Studio .NET 2008 (Free Express Editions available), MonoDevelop from Mono Project </li></ul></ul><ul><ul><li>Servers: Microsoft IIS (on Windows), Apache with mono_mod module (on Linux, MacOS) </li></ul></ul>
  33. 33. <ul><li>While J2EE and Microsoft .NET technologies compete in broad fronts, there are some other popular options on specific areas: </li></ul><ul><ul><ul><li>Web based development – PHP, Ruby on Rails </li></ul></ul></ul><ul><ul><ul><li>Client technologies including RIA – Python and Flex </li></ul></ul></ul><ul><ul><ul><li>Mobile – Symbian (Nokia), Palm OS and Mac OS </li></ul></ul></ul>
  34. 34. <ul><li>Most of the competition is from open source product and contributors. </li></ul><ul><li>Companies like Sun, Oracle and IBM has embraced open source a big way. </li></ul><ul><li>Apache Software Foundation and MuleSource are two large non profit foundations hosts of open source projects. </li></ul>
  35. 35. Section 4:
  36. 36. <ul><li>Decision </li></ul><ul><ul><li>Choice of core Platform </li></ul></ul><ul><ul><ul><li>Ability to leverage the investment on existing infrastructure. </li></ul></ul></ul><ul><ul><ul><li>Choices available for integration </li></ul></ul></ul><ul><ul><li>Choice of a framework </li></ul></ul><ul><ul><ul><li>Basic operations such as data access, data caching, logging, input validation and security </li></ul></ul></ul><ul><ul><ul><li>Use of mix of third party components to supplement framework based on requirements. </li></ul></ul></ul>
  37. 37. <ul><li>Decisions </li></ul><ul><ul><ul><li>Budget – Cost of acquisition, training and maintenance </li></ul></ul></ul><ul><ul><ul><li>Availability of skills and resources </li></ul></ul></ul><ul><ul><ul><li>Market Intelligence </li></ul></ul></ul><ul><li>On going challenges </li></ul><ul><ul><ul><li>Effort distribution </li></ul></ul></ul><ul><ul><ul><li>Project Tracking and conflict resolution </li></ul></ul></ul><ul><ul><ul><li>Co-ordination of activities across departments </li></ul></ul></ul><ul><ul><ul><li>Communication of challenges and priorities </li></ul></ul></ul><ul><ul><ul><li>Talent acquisition and skill upgradation </li></ul></ul></ul>
  38. 38. <ul><li>Making the right pitch </li></ul><ul><ul><ul><li>Gaining fundamental understanding of the platform and framework feature </li></ul></ul></ul><ul><ul><ul><li>Prepare a cost benefit analysis of using a specific technology – platform or framework. </li></ul></ul></ul><ul><ul><ul><li>Factor in things like - time to market, stability of the end product and end user acceptance </li></ul></ul></ul><ul><ul><ul><li>Determine alternatives, whenever possible. </li></ul></ul></ul>
  39. 39. Section 4:
  40. 40. <ul><li>No Industry standard definition. </li></ul><ul><li>It is a combination of trends and technology fuelling collaboration and communication across the globe leveraging the Internet. </li></ul><ul><li>According to presenter – it is a realization that everything cannot be done by single entity or organization and expertise should be leveraged. </li></ul>
  41. 41. <ul><li>Typical application – Composite applications, SaaS, Social Networking </li></ul><ul><li>Big players – MySpace, Facebook, LinkedIn, Tweeter, Trip Advisor. </li></ul><ul><li>Discussion: </li></ul><ul><ul><li>How active are you on Web 2.0? </li></ul></ul><ul><ul><li>Do you have Facebook or LinkedIn profile? </li></ul></ul>
  42. 42. <ul><li>Ability to run several virtual machines on single physical machine utilizing hardware simulation. </li></ul><ul><li>Provides ability to maximize CPU and resource utilization on the physical box. </li></ul><ul><li>Driven by Datacenter consolidation. Initial push was in Server consolidation. </li></ul><ul><li>More recent driver – Green Computing and Desktop conslidation </li></ul>
  43. 43. <ul><li>Pioneer – VMWare (now part of EMC Corp) </li></ul><ul><li>More recent entrants – Citrix, Microsoft, Oracle, Red Hat and Sun Microsystems. </li></ul><ul><li>Side industry to manage virtual machines is also cropping up. </li></ul><ul><li>Discussion: </li></ul><ul><ul><li>Are you even aware that some of the servers you log on to remotely are virtual machines? </li></ul></ul>
  44. 44. <ul><li>Like the fashion industry, things in IT come back a circle packaged in a new vibrant color and fabric. </li></ul><ul><li>Cloud computing is primarily aiming to reduce IT infrastructure and maintenance cost. </li></ul><ul><li>Business Model – Pay as you go/Pay for what you use. (Like the erstwhile mainframe area) </li></ul>
  45. 45. <ul><li>Pioneers – Amazon, Salesforce </li></ul><ul><li>Most recent entrants – Microsoft, Rackspace </li></ul><ul><li>Side Industry – manage and speed up cloud access. Majority companies are Startups. </li></ul><ul><li>Discussion: </li></ul><ul><ul><li>Do you think will this model succeed? </li></ul></ul>
  46. 46. <ul><li>Promise to access information anywhere </li></ul><ul><li>Initial applications – e-mail and WAP based application designed for limited capabilities of a mobile device. </li></ul><ul><li>J2ME allowed development of interactive applications on the phone </li></ul><ul><li>Windows CE/Mobile (Microsoft), Brew (Qualcomm) and Symbian (Nokia) were dominant platforms till… </li></ul>
  47. 47. <ul><li>Apple iPhone came along in 2006 and it was game changer. </li></ul><ul><li>Google Android followed in 2007-2008. </li></ul><ul><li>Challenges – disconnected mode of operation and security. </li></ul><ul><li>Major Players –Nokia, Qualcomm, Apple, Microsoft, Sun Microsystems , Google </li></ul><ul><li>Discussion: </li></ul><ul><ul><li>How mobile savvy are you? </li></ul></ul>
  48. 48. <ul><li>On the web: </li></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><ul><ul><li> </li></ul></ul></ul>
  49. 49. Feedback form will be available as online to be filled out
  50. 50. Follow up with Shashank at| 678.439.5337