50
December 7, 2008

Training - Managing .NET/J2EE Projects

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Training - Managing .NET/J2EE Projects

December 7, 2008

Page 2: Training - Managing .NET/J2EE Projects

Welcome and IntroductionsComputer Networking BasicsDistributed Computing

FundamentalsPlatform Wars – Java, .NET and the

3rd frontYou – the techie, manager and

salesperson Technology Buzzwords

Page 3: Training - Managing .NET/J2EE Projects

Shashank Banerjea▪ President and Founder of Emjive Consulting

LLC.▪ Working on various technologies including

Java and Microsoft .NET on Windows and Linux platforms since 1999.▪ Masters degree in Computer Applications

from Devi Ahliya University, Indore, Madhya Pradesh (INDIA)▪ Wrote my first piece of useful code in 1983

using BASIC on a 8-bit Atari computer.

Page 4: Training - Managing .NET/J2EE Projects

Ask questions or comment at any time.

Fact: I do NOT know everything and can and probably will make things up!!!!

Feel free to share your experience.Take notes to check later if you know

things differently.

Page 5: Training - Managing .NET/J2EE Projects

Section 1:

Page 6: Training - Managing .NET/J2EE Projects

De-facto Standard of Computer to Computer Communication – TCP/IP.

Reason for the rise – dot com boom of the 1990s.

Replaced many proprietary protocols such as IPX/SPX (Novell), NetBIOS (Microsoft), Banyan Vines etc on LAN.

Page 7: Training - Managing .NET/J2EE Projects

Relevance: Foundation of all new applications – enterprise or consumer.

No major application today can afford to exist in a silo.

Higher level application protocols depend upon TCP/IP stack to exchange information including Web (HTTP), Mail (SMTP, IMAP) and Instant Messaging (XMPP)

Page 8: Training - Managing .NET/J2EE Projects

IPv4 Addressing – 32 bit address. Presented in canonical form as xxx.xxx.xxx.xxx, where xxx: 0-255.

232 = about 4 billion computers on the Internet.

Classes of IP Addresses – A, B and C based on network size. D and E (Special Purpose)

Internal LAN IP address – 10.0.x.x, 172.16.x.x and 192.168.x.x

Page 9: Training - Managing .NET/J2EE Projects

Types of TCP/IP communication – Stream and Datagram

Transport Layer: TCP = Stream; UDP = Datagram

Application bind to ports or channels on the transport layer.

Reserved Ports – 0 – 1024Max Port number – 216= 65536

Page 10: Training - Managing .NET/J2EE Projects

Well known reserved port – TCP /80 – HTTP/Web TCP/23 – Telnet TCP/21 – FTP UDP/226 – Windows File share

TCP Applications – telnet, FTP, WebUDP Applications – VoIP, Video

Streaming, Network File sharing

Page 11: Training - Managing .NET/J2EE Projects

Typical CommunicationClient 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.

Page 12: Training - Managing .NET/J2EE Projects

HTTP Communication: TCP based protocol Default port: 80; Popular ports: 8000, 8080,

8090 Request/Response only. Stateless in nature Client and Server may exchange or store

information to maintain state and keep in sync. Session ID is a commonly used information. Secure Cousin – HTTPS – uses encryption

Page 13: Training - Managing .NET/J2EE Projects

Section 2:

Page 14: Training - Managing .NET/J2EE Projects

Early Days - Concept originated in mid 1980s with large proliferation of PCs at workplace

Departmental servers become powerful enough to run multitasking OS such as UNIX, Netware OS.

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)

Page 15: Training - Managing .NET/J2EE Projects

Next Evolution – Two tier – Client/Server applications.

Divided the application logic and database services at the minimum.

Typical Applications built on Visual BASIC, PowerBuilder, Oracle Forms

Limitation – not very scalable or manageable.

Limitation - Entire application built on single core language and platform.

Page 16: Training - Managing .NET/J2EE Projects

First true industry standard for distributed computing – CORBA

CORBA – Common Object Request Broker Architecture.

Allowed developers to transcend language and platform.

Example – a Java developer on Unix platform could utilize objects of a C++ class on Windows platform – REMOTELY!!!

Page 17: Training - Managing .NET/J2EE Projects

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

Similar in concept and intent to CORBA, DCOM works only on Windows platform.

Page 18: Training - Managing .NET/J2EE Projects

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

Page 19: Training - Managing .NET/J2EE Projects

Some popular technologies today : Web Services – SOAP/REST (cross

platform/most popular) Remote Method Invocation (RMI) and Java

Message Service (J2EE environments) .NET Remoting (Windows Environment) Enterprise/Internet Service Bus

Concept to keep in mind N-tier architecture

Page 20: Training - Managing .NET/J2EE Projects

Section 3:

Page 21: Training - Managing .NET/J2EE Projects

Initially developed by Sun Microsystems to run on set top boxes.

First public implementation – 1995 with promise of Write Once, Run Anywhere principle.

First wave of programming capability was on Desktop and small downloadable programs on browser called – Applets.

Page 22: Training - Managing .NET/J2EE Projects

By 1997, became the leading language to program on the internet browsers.

Server side component – Servlet, in June 1997 were introduced to generate to publish dynamic content based on user input.

Soon there was push for more complex and functional server side components like – Java Server Pages, EJBs etc.

Page 23: Training - Managing .NET/J2EE Projects

Java – WORA magic

Page 24: Training - Managing .NET/J2EE Projects

Java 2 Standard Edition (J2SE) Targets Client Applications – Desktop, Browser Current version – Version 6.0 (7.0 in early

beta) Java 2 Enterprise Edition (J2EE)

Large scale enterprise applications Current Version – 5.0

Java 2 Micro Edition (J2ME) Mobile and low powered devices Current Version – 3.0

Page 25: Training - Managing .NET/J2EE Projects

Popular Tools and Solutions JDK/JVM – Sun JVM, IBM, Apache Harmony IDEs – Eclipse, NetBeans, JBuilder, WSAD J2EE Servers - Apache Tomcat, Sun -

Glassfish, IBM Websphere, BEA/Oracle Weblogic

Related Concepts: Just in Time (JIT) Complier Garbage Collector

Page 26: Training - Managing .NET/J2EE Projects

Prior to Microsoft .NET – Development on Windows Platform was very fragmented. Client Applications – Visual BASIC, Visual C++

and MFC, Borland C++ and Delphi with OWL System Applications – Win32 API with Visual C+

+ and Borland C++ Enterprise Applications – DCOM/COM+, DDE Web Based Application – Active Server Pages,

ISAPI (using C++ and COM/DCOM), ActiveX

Page 27: Training - Managing .NET/J2EE Projects

Microsoft .NET was a opportunity to consolidate competing APIs on the Windows platform and respond to threat of Java in the enterprise arena.

Promise – Code in ANY language but RUN on Microsoft .NET platform.

Reason - Windows platform is the lifeline for Microsoft revenue.

Page 28: Training - Managing .NET/J2EE Projects

Cornerstones of the .NET platform Common Type System (CTS) Common Language Runtime (CLR) IL – Intermediary Language

Common Type System – allows for unified representation of data expressed in different languages such that it been used across the .NET platform.

Page 29: Training - Managing .NET/J2EE Projects

Microsoft .NET Development Stack

Page 30: Training - Managing .NET/J2EE Projects

Microsoft .NET Framework Targets for client and server software Current Version 3.5 (Version 4.0 in CTP)

Microsoft .NET Compact Framework (CF) Targets handheld and mobile devices Current Version 3.0

Microsoft .NET Micro Framework (MF) Targets low powered and embedded devices Latest release 3.0 in October 2008

Page 31: Training - Managing .NET/J2EE Projects

Microsoft .NET platforms also runs on non- Windows platform.

Result of Microsoft opening up the CTS and CLR specification to ISO for standardization and an Open Source effort called the MONO project.

Page 32: Training - Managing .NET/J2EE Projects

Popular Tools: IDEs: Microsoft Visual Studio .NET 2008

(Free Express Editions available), MonoDevelop from Mono Project

Servers: Microsoft IIS (on Windows), Apache with mono_mod module (on Linux, MacOS)

Page 33: Training - Managing .NET/J2EE Projects

While J2EE and Microsoft .NET technologies compete in broad fronts, there are some other popular options on specific areas:▪ Web based development – PHP, Ruby on Rails▪ Client technologies including RIA – Python

and Flex▪ Mobile – Symbian (Nokia), Palm OS and Mac

OS

Page 34: Training - Managing .NET/J2EE Projects

Most of the competition is from open source product and contributors.

Companies like Sun, Oracle and IBM has embraced open source a big way.

Apache Software Foundation and MuleSource are two large non profit foundations hosts of open source projects.

Page 35: Training - Managing .NET/J2EE Projects

Section 4:

Page 36: Training - Managing .NET/J2EE Projects

Decision Choice of core Platform▪ Ability to leverage the investment on existing

infrastructure.▪ Choices available for integration

Choice of a framework▪ Basic operations such as data access, data

caching, logging, input validation and security▪ Use of mix of third party components to

supplement framework based on requirements.

Page 37: Training - Managing .NET/J2EE Projects

Decisions▪ Budget – Cost of acquisition, training and

maintenance▪ Availability of skills and resources▪ Market Intelligence

On going challenges▪ Effort distribution▪ Project Tracking and conflict resolution▪ Co-ordination of activities across departments▪ Communication of challenges and priorities▪ Talent acquisition and skill upgradation

Page 38: Training - Managing .NET/J2EE Projects

Making the right pitch▪ Gaining fundamental understanding of the

platform and framework feature▪ Prepare a cost benefit analysis of using a

specific technology – platform or framework.▪ Factor in things like - time to market, stability

of the end product and end user acceptance▪ Determine alternatives, whenever possible.

Page 39: Training - Managing .NET/J2EE Projects

Section 4:

Page 40: Training - Managing .NET/J2EE Projects

No Industry standard definition. It is a combination of trends and

technology fuelling collaboration and communication across the globe leveraging the Internet.

According to presenter – it is a realization that everything cannot be done by single entity or organization and expertise should be leveraged.

Page 41: Training - Managing .NET/J2EE Projects

Typical application – Composite applications, SaaS, Social Networking

Big players – MySpace, Facebook, LinkedIn, Tweeter, Trip Advisor.

Discussion: How active are you on Web 2.0? Do you have Facebook or LinkedIn profile?

Page 42: Training - Managing .NET/J2EE Projects

Ability to run several virtual machines on single physical machine utilizing hardware simulation.

Provides ability to maximize CPU and resource utilization on the physical box.

Driven by Datacenter consolidation. Initial push was in Server consolidation.

More recent driver – Green Computing and Desktop conslidation

Page 43: Training - Managing .NET/J2EE Projects

Pioneer – VMWare (now part of EMC Corp)

More recent entrants – Citrix, Microsoft, Oracle, Red Hat and Sun Microsystems.

Side industry to manage virtual machines is also cropping up.

Discussion: Are you even aware that some of the servers

you log on to remotely are virtual machines?

Page 44: Training - Managing .NET/J2EE Projects

Like the fashion industry, things in IT come back a circle packaged in a new vibrant color and fabric.

Cloud computing is primarily aiming to reduce IT infrastructure and maintenance cost.

Business Model – Pay as you go/Pay for what you use. (Like the erstwhile mainframe area)

Page 45: Training - Managing .NET/J2EE Projects

Pioneers – Amazon, SalesforceMost recent entrants – Microsoft,

RackspaceSide Industry – manage and speed

up cloud access. Majority companies are Startups.

Discussion: Do you think will this model succeed?

Page 46: Training - Managing .NET/J2EE Projects

Promise to access information anywhere

Initial applications – e-mail and WAP based application designed for limited capabilities of a mobile device.

J2ME allowed development of interactive applications on the phone

Windows CE/Mobile (Microsoft), Brew (Qualcomm) and Symbian (Nokia) were dominant platforms till…

Page 47: Training - Managing .NET/J2EE Projects

Apple iPhone came along in 2006 and it was game changer.

Google Android followed in 2007-2008. Challenges – disconnected mode of

operation and security. Major Players –Nokia, Qualcomm,

Apple, Microsoft, Sun Microsystems , Google

Discussion: How mobile savvy are you?

Page 48: Training - Managing .NET/J2EE Projects

On the web:▪ http://www.w3c.com▪ http://msdn.microsoft.com▪ http://java.sun.com▪ http://wikipedia.com/▪ http://www.asp.net▪ http://www.php.net▪ http://www.apache.org▪ http://mulesource.org

Page 49: Training - Managing .NET/J2EE Projects

Feedback form will be available as online to be filled out

Page 50: Training - Managing .NET/J2EE Projects

Follow up with Shashank at [email protected]| 678.439.5337