Sbc Pmo 2 25


Published on

A brief introduction to professional services and establisment of a PMO

  • 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

Sbc Pmo 2 25

  1. 1. SBC - SERVICES
  2. 2. “… Give us the tools and we will finish the work...” Winston Churchill [email_address] 408.656.2498
  3. 3. <ul><li>Overview to PMO Services </li></ul><ul><li>PMO Priorities </li></ul><ul><li>PMO Objectives </li></ul><ul><li>PMO Services </li></ul><ul><li>Evolution </li></ul><ul><li>Directory creation </li></ul><ul><li>Steps </li></ul>[email_address] 408.656.2498
  4. 4. OUR PRIORITIES Core team Core Integrating PMO Services [email_address] 408.656.2498
  5. 5. Areas to Target and Focus On <ul><li>Strategy and Planning </li></ul><ul><li>People / Communication </li></ul><ul><li>Tools and Systems </li></ul><ul><li>Training </li></ul><ul><li>Processes </li></ul><ul><li>Monitor and Control </li></ul>OBJECTIVES [email_address] 408.656.2498
  6. 6. <ul><li>Share Driver & Folders </li></ul><ul><ul><li>Affiliate Folders </li></ul></ul><ul><ul><ul><li>PM </li></ul></ul></ul><ul><ul><ul><ul><li>Contact list </li></ul></ul></ul></ul><ul><ul><ul><ul><li>PM schedule </li></ul></ul></ul></ul><ul><ul><ul><li>Life Cycle </li></ul></ul></ul><ul><ul><li>Template Folder </li></ul></ul><ul><ul><li>Agenda Folder </li></ul></ul><ul><ul><li>Meeting & Minutes Folder </li></ul></ul><ul><ul><li>Loosely coupled events </li></ul></ul><ul><li>Communication Plan Matrix </li></ul><ul><li>Reports </li></ul><ul><li>PANAGON “Deliverables” </li></ul><ul><ul><li>Design - DAD </li></ul></ul><ul><ul><li>Test Plans </li></ul></ul><ul><ul><li>Project Plan </li></ul></ul><ul><ul><li>Data Modeling </li></ul></ul><ul><ul><li>SLA </li></ul></ul><ul><ul><li>Security </li></ul></ul>[email_address] 408.656.2498
  7. 7. <ul><li>Menu approach </li></ul><ul><li>On-Line Service </li></ul>Installation Staging Applications Eng Lab Testing Upgrade PM New System Project Management Installation PMO Service - Share Drive - PANAGON - Communication Matrix - Coordinate activities Customers Partners/ Dealers [email_address] 408.656.2498
  8. 8. <ul><li>Release 1.0 03/2004 </li></ul><ul><li>Express Launch 2004 </li></ul><ul><li>Release 2.0 2004 </li></ul><ul><li>Release 3.0 2005 </li></ul>[email_address] 408.656.2498
  9. 9. [email_address] 408.656.2498
  10. 10. <ul><li>Components using services are called Serviced Components </li></ul><ul><li>Must derive from ServicedComponent </li></ul><ul><ul><li>System.EnterpriseServices </li></ul></ul><ul><ul><li>Cannot use static members/methods </li></ul></ul><ul><ul><li>Cannot have parameterized constructors </li></ul></ul><ul><ul><li>Should use interfaces (not have to) </li></ul></ul><ul><ul><li>Should use class libraries (not have to) </li></ul></ul><ul><li>.NET integration with COM+ is better than COM/VS6.0 </li></ul>[email_address] 408.656.2498
  11. 11. <ul><li>Can override default object construction for various purposes </li></ul><ul><li>Override protected Construct method </li></ul><ul><li>Most often used to pass connection strings </li></ul><ul><li>Can use attributes to specify construction string </li></ul>[email_address] 408.656.2498
  12. 12. <ul><li>Pool per machine in server application </li></ul><ul><li>Pool per app-domain in library application </li></ul>[email_address] 408.656.2498
  13. 13. <ul><li>Goal: </li></ul><ul><ul><li>Provide scalable solution that enables objects to “scale” easily </li></ul></ul><ul><ul><li>Scalability defined as: </li></ul></ul><ul><ul><ul><li>Many stateless objects, short lifetime with many clients (i.e. internet) </li></ul></ul></ul><ul><ul><ul><li>Fewer stateful objects, long lifetimes and with complex logic (i.e. intranet) </li></ul></ul></ul><ul><ul><li>Topics discussed is not new to .NET/COM+ </li></ul></ul>[email_address] 408.656.2498
  14. 14. <ul><li>Defined as: </li></ul><ul><ul><li>Managing access to expensive instances/objects and managing their lifetime </li></ul></ul><ul><ul><li>Object Pooling </li></ul></ul><ul><ul><ul><li>Maintain a set of objects, or pool, to serve clients </li></ul></ul></ul><ul><ul><ul><li>Pool per object type </li></ul></ul></ul><ul><ul><li>Just-In-Time Activation (JITA) </li></ul></ul><ul><ul><ul><li>References object ONLY when methods are called </li></ul></ul></ul>[email_address] 408.656.2498
  15. 15. [Client calls a method] Get object from pool Is it Dispose() [no] [yes] Execute the method Return to the pool Client creates [GC] [email_address] 408.656.2498
  16. 16. <ul><li>I need to ensure (ACID) on one component and resource </li></ul><ul><ul><li>Component responsible for enlisting resource </li></ul></ul><ul><ul><li>Manual Transactions are often good enough (generally more performant) </li></ul></ul><ul><ul><li>Doesn’t need Enterprise Services </li></ul></ul>DB Client Obj Transaction [email_address] 408.656.2498
  17. 17. <ul><li>Scenario: </li></ul><ul><ul><li>Multiple components enlisting single resource </li></ul></ul>DB Client Obj Transaction Obj Obj [email_address] 408.656.2498
  18. 18. <ul><li>Scenario is complicated: </li></ul><ul><ul><li>Resource should be enlisted just once </li></ul></ul><ul><ul><ul><li>By whom? first to access it? first created? </li></ul></ul></ul><ul><ul><ul><li>How would components know all that? </li></ul></ul></ul><ul><ul><li>Components can be on different machines </li></ul></ul><ul><ul><ul><li>Transaction has to flow across machine boundary </li></ul></ul></ul><ul><ul><ul><li>One machine can crash, while the other continue processing </li></ul></ul></ul><ul><ul><li>Each component can encounter error and abort </li></ul></ul><ul><ul><ul><li>Only if they all succeed ask the resource to commit </li></ul></ul></ul><ul><ul><ul><li>Somebody has to collect the votes </li></ul></ul></ul>[email_address] 408.656.2498
  19. 19. <ul><li>Multiple components accessing multiple resources, all taking part in same transaction </li></ul>DB Client Obj Transaction Obj Obj DB DB [email_address] 408.656.2498
  20. 20. <ul><li>Multiple points of failure </li></ul><ul><li>Resources must be enlisted, and just once </li></ul><ul><ul><li>Who keeps track of what resources are used? </li></ul></ul><ul><ul><li>Put that knowledge in your code ? </li></ul></ul><ul><li>Components and resources ca be on different machines </li></ul><ul><ul><li>Transaction has to flow across machine boundary </li></ul></ul><ul><li>Each resource can encounter error with the requested changes and can abort the transaction </li></ul><ul><li>.NET Enterprise Services make this as easy as the first one </li></ul>[email_address] 408.656.2498
  21. 21. Client MSMQ 2 Note: There are actually 2 queues, one for the client and the other for the endpoint [email_address] 408.656.2498 Player Some Component ISomeInterface Recorder IMyInterface 1 Listener 3 Player 4 My Component IMyInterface 6 5
  22. 22. [email_address] 408.656.2498