| <html xmlns:v="urn:schemas-microsoft-com:vml" | |
| xmlns:o="urn:schemas-microsoft-com:office:office" | |
| xmlns:w="urn:schemas-microsoft-com:office:word" | |
| xmlns:st1="urn:schemas-microsoft-com:office:smarttags" | |
| xmlns="http://www.w3.org/TR/REC-html40"> | |
| <head> | |
| <meta http-equiv=Content-Type content="text/html; charset=windows-1252"> | |
| <meta name=ProgId content=Word.Document> | |
| <meta name=Generator content="Microsoft Word 10"> | |
| <meta name=Originator content="Microsoft Word 10"> | |
| <link rel=File-List href="FlexibleProjectConcepts_files/filelist.xml"> | |
| <link rel=Edit-Time-Data href="FlexibleProjectConcepts_files/editdata.mso"> | |
| <!--[if !mso]> | |
| <style> | |
| v\:* {behavior:url(#default#VML);} | |
| o\:* {behavior:url(#default#VML);} | |
| w\:* {behavior:url(#default#VML);} | |
| .shape {behavior:url(#default#VML);} | |
| </style> | |
| <![endif]--> | |
| <title>Problems that are obviously us:</title> | |
| <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags" | |
| name="place"/> | |
| <o:SmartTagType namespaceuri="urn:schemas-microsoft-com:office:smarttags" | |
| name="City"/> | |
| <!--[if gte mso 9]><xml> | |
| <o:DocumentProperties> | |
| <o:Author>Michael D. Elder</o:Author> | |
| <o:LastAuthor>cbridgha</o:LastAuthor> | |
| <o:Revision>2</o:Revision> | |
| <o:TotalTime>6</o:TotalTime> | |
| <o:LastPrinted>2004-11-11T16:27:00Z</o:LastPrinted> | |
| <o:Created>2004-11-11T18:05:00Z</o:Created> | |
| <o:LastSaved>2004-11-11T18:05:00Z</o:LastSaved> | |
| <o:Pages>1</o:Pages> | |
| <o:Words>1502</o:Words> | |
| <o:Characters>8562</o:Characters> | |
| <o:Company>IBM</o:Company> | |
| <o:Lines>71</o:Lines> | |
| <o:Paragraphs>20</o:Paragraphs> | |
| <o:CharactersWithSpaces>10044</o:CharactersWithSpaces> | |
| <o:Version>10.4219</o:Version> | |
| </o:DocumentProperties> | |
| </xml><![endif]--><!--[if gte mso 9]><xml> | |
| <w:WordDocument> | |
| <w:Compatibility> | |
| <w:BreakWrappedTables/> | |
| <w:SnapToGridInCell/> | |
| <w:WrapTextWithPunct/> | |
| <w:UseAsianBreakRules/> | |
| </w:Compatibility> | |
| <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> | |
| </w:WordDocument> | |
| </xml><![endif]--><!--[if !mso]><object | |
| classid="clsid:38481807-CA0E-42D2-BF39-B33AF135CC4D" id=ieooui></object> | |
| <style> | |
| st1\:*{behavior:url(#ieooui) } | |
| </style> | |
| <![endif]--> | |
| <style> | |
| <!-- | |
| /* Font Definitions */ | |
| @font-face | |
| {font-family:Wingdings; | |
| panose-1:5 0 0 0 0 0 0 0 0 0; | |
| mso-font-charset:2; | |
| mso-generic-font-family:auto; | |
| mso-font-pitch:variable; | |
| mso-font-signature:0 268435456 0 0 -2147483648 0;} | |
| @font-face | |
| {font-family:Tahoma; | |
| panose-1:2 11 6 4 3 5 4 4 2 4; | |
| mso-font-charset:0; | |
| mso-generic-font-family:swiss; | |
| mso-font-pitch:variable; | |
| mso-font-signature:1627421319 -2147483648 8 0 66047 0;} | |
| /* Style Definitions */ | |
| p.MsoNormal, li.MsoNormal, div.MsoNormal | |
| {mso-style-parent:""; | |
| margin:0in; | |
| margin-bottom:.0001pt; | |
| mso-pagination:widow-orphan; | |
| font-size:12.0pt; | |
| font-family:"Times New Roman"; | |
| mso-fareast-font-family:"Times New Roman";} | |
| h3 | |
| {mso-margin-top-alt:auto; | |
| margin-right:0in; | |
| mso-margin-bottom-alt:auto; | |
| margin-left:0in; | |
| mso-pagination:widow-orphan; | |
| mso-outline-level:3; | |
| font-size:13.5pt; | |
| font-family:"Times New Roman";} | |
| a:link, span.MsoHyperlink | |
| {color:blue; | |
| text-decoration:underline; | |
| text-underline:single;} | |
| a:visited, span.MsoHyperlinkFollowed | |
| {color:purple; | |
| text-decoration:underline; | |
| text-underline:single;} | |
| @page Section1 | |
| {size:8.5in 11.0in; | |
| margin:1.0in 1.25in 1.0in 1.25in; | |
| mso-header-margin:.5in; | |
| mso-footer-margin:.5in; | |
| mso-paper-source:0;} | |
| div.Section1 | |
| {page:Section1;} | |
| /* List Definitions */ | |
| @list l0 | |
| {mso-list-id:132529151; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:1093442910 67698709 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;} | |
| @list l0:level1 | |
| {mso-level-number-format:alpha-upper; | |
| mso-level-tab-stop:.5in; | |
| mso-level-number-position:left; | |
| text-indent:-.25in;} | |
| @list l0:level2 | |
| {mso-level-number-format:alpha-lower; | |
| mso-level-tab-stop:1.0in; | |
| mso-level-number-position:left; | |
| text-indent:-.25in;} | |
| @list l0:level3 | |
| {mso-level-number-format:roman-lower; | |
| mso-level-tab-stop:1.5in; | |
| mso-level-number-position:right; | |
| text-indent:-9.0pt;} | |
| @list l1 | |
| {mso-list-id:288974159; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:1046108864 1111785440 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l1:level1 | |
| {mso-level-start-at:0; | |
| mso-level-number-format:bullet; | |
| mso-level-text:-; | |
| mso-level-tab-stop:.75in; | |
| mso-level-number-position:left; | |
| margin-left:.75in; | |
| text-indent:-.25in; | |
| font-family:"Times New Roman"; | |
| mso-fareast-font-family:"Times New Roman";} | |
| @list l2 | |
| {mso-list-id:391659255; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:-1881621166 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l2:level1 | |
| {mso-level-number-format:bullet; | |
| mso-level-text:\F0B7; | |
| mso-level-tab-stop:.5in; | |
| mso-level-number-position:left; | |
| text-indent:-.25in; | |
| font-family:Symbol;} | |
| @list l3 | |
| {mso-list-id:859508517; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:2094045304 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l3:level1 | |
| {mso-level-number-format:bullet; | |
| mso-level-text:\F0B7; | |
| mso-level-tab-stop:1.5in; | |
| mso-level-number-position:left; | |
| margin-left:1.5in; | |
| text-indent:-.25in; | |
| font-family:Symbol;} | |
| @list l4 | |
| {mso-list-id:1006594864; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:-794890384 668081380 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l4:level1 | |
| {mso-level-start-at:0; | |
| mso-level-number-format:bullet; | |
| mso-level-text:\F06E; | |
| mso-level-tab-stop:.75in; | |
| mso-level-number-position:left; | |
| margin-left:.75in; | |
| text-indent:-.25in; | |
| font-family:Wingdings; | |
| mso-fareast-font-family:"Times New Roman"; | |
| mso-bidi-font-family:"Times New Roman";} | |
| @list l4:level2 | |
| {mso-level-number-format:bullet; | |
| mso-level-text:o; | |
| mso-level-tab-stop:1.25in; | |
| mso-level-number-position:left; | |
| margin-left:1.25in; | |
| text-indent:-.25in; | |
| font-family:"Courier New";} | |
| @list l5 | |
| {mso-list-id:1402829190; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:-1531251734 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l5:level1 | |
| {mso-level-number-format:bullet; | |
| mso-level-text:\F0B7; | |
| mso-level-tab-stop:1.0in; | |
| mso-level-number-position:left; | |
| margin-left:1.0in; | |
| text-indent:-.25in; | |
| font-family:Symbol;} | |
| @list l6 | |
| {mso-list-id:1457291202; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:-265669448 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l6:level1 | |
| {mso-level-number-format:bullet; | |
| mso-level-text:\F0B7; | |
| mso-level-tab-stop:1.5in; | |
| mso-level-number-position:left; | |
| margin-left:1.5in; | |
| text-indent:-.25in; | |
| font-family:Symbol;} | |
| @list l7 | |
| {mso-list-id:1838376975; | |
| mso-list-type:hybrid; | |
| mso-list-template-ids:-1460776930 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;} | |
| @list l7:level1 | |
| {mso-level-number-format:bullet; | |
| mso-level-text:\F0B7; | |
| mso-level-tab-stop:1.0in; | |
| mso-level-number-position:left; | |
| margin-left:1.0in; | |
| text-indent:-.25in; | |
| font-family:Symbol;} | |
| ol | |
| {margin-bottom:0in;} | |
| ul | |
| {margin-bottom:0in;} | |
| --> | |
| </style> | |
| <!--[if gte mso 10]> | |
| <style> | |
| /* Style Definitions */ | |
| table.MsoNormalTable | |
| {mso-style-name:"Table Normal"; | |
| mso-tstyle-rowband-size:0; | |
| mso-tstyle-colband-size:0; | |
| mso-style-noshow:yes; | |
| mso-style-parent:""; | |
| mso-padding-alt:0in 5.4pt 0in 5.4pt; | |
| mso-para-margin:0in; | |
| mso-para-margin-bottom:.0001pt; | |
| mso-pagination:widow-orphan; | |
| font-size:10.0pt; | |
| font-family:"Times New Roman";} | |
| table.MsoTableGrid | |
| {mso-style-name:"Table Grid"; | |
| mso-tstyle-rowband-size:0; | |
| mso-tstyle-colband-size:0; | |
| border:solid windowtext 1.0pt; | |
| mso-border-alt:solid windowtext .5pt; | |
| mso-padding-alt:0in 5.4pt 0in 5.4pt; | |
| mso-border-insideh:.5pt solid windowtext; | |
| mso-border-insidev:.5pt solid windowtext; | |
| mso-para-margin:0in; | |
| mso-para-margin-bottom:.0001pt; | |
| mso-pagination:widow-orphan; | |
| font-size:10.0pt; | |
| font-family:"Times New Roman";} | |
| </style> | |
| <![endif]--><!--[if gte mso 9]><xml> | |
| <o:shapedefaults v:ext="edit" spidmax="2050"/> | |
| </xml><![endif]--><!--[if gte mso 9]><xml> | |
| <o:shapelayout v:ext="edit"> | |
| <o:idmap v:ext="edit" data="1"/> | |
| </o:shapelayout></xml><![endif]--> | |
| </head> | |
| <body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'> | |
| <div class=Section1> | |
| <p class=MsoNormal>The J2EE Flexible Project Concepts Documentation</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>The goal of this document is to share some initial ideas | |
| that will help shape the Eclipse Web Tools (WTP) J2EE project application model | |
| and its implementation. We initially planned to pursue this effort as a formal | |
| requirements gathering and documentation process. But once we began analyzing | |
| the problem space it was clear that there is no common J2EE project model used | |
| within the J2EE development community. Stated another way, all current J2EE | |
| project models are ad hoc. At most, the J2EE application deployment model, | |
| defined in the J2EE specification, is the only common reference structure and | |
| it only specifies to the runtime archive form of valid J2EE applications. With | |
| that as our starting point, we concluded that rather than attempt to draft a | |
| conventional requirements document, it would be more beneficial to initiate a | |
| discussion of ideas among the key WTP participants that can serve as the | |
| catalyst for a J2EE application project requirements and subsequent | |
| architecture and implementation.</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>The contents of this document are representative of the | |
| future direction. However, some of this functionality described is | |
| representative of our current state.</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>There are several | |
| use cases described in the Use Case Scenario Powerpoint Slides. Where relevant, | |
| the relationship of the concepts described in this document and the scenario | |
| slides are highlighted.</span><o:p></o:p></p> | |
| <p class=MsoNormal style='margin-left:.25in'><o:p> </o:p></p> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>A <b | |
| style='mso-bidi-font-weight:normal'>project</b> is a type of resource which | |
| groups resources into buildable, reusable units</span> - Java <span lang=TR | |
| style='mso-ansi-language:TR'>project resource</span>s are defined<span lang=TR | |
| style='mso-ansi-language:TR'> in terms of Java<span style='mso-spacerun:yes'> | |
| </span>elements such as package fragments, types, methods and fields.<o:p></o:p></span></p> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'><o:p> </o:p></span></p> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>The scenario | |
| slides highlight the following types of use cases:<o:p></o:p></span></p> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'><o:p> </o:p></span></p> | |
| <ul style='margin-top:0in' type=disc> | |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span | |
| lang=TR style='mso-ansi-language:TR'>Simple Project (contains one module | |
| and one Deploy Scheme)<o:p></o:p></span></li> | |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span | |
| lang=TR style='mso-ansi-language:TR'>Simple Container Project (contains one | |
| or more modules, possibly multiple Deploy Schemes)<o:p></o:p></span></li> | |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span | |
| lang=TR style='mso-ansi-language:TR'>Application Project (application and | |
| modules contained in the same<span style='mso-spacerun:yes'> | |
| </span>Simple Container project)<o:p></o:p></span></li> | |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span | |
| lang=TR style='mso-ansi-language:TR'>Application Project Variation (application | |
| in one Simple Container Project modules may be in other Simple Container | |
| projects)<o:p></o:p></span></li> | |
| <li class=MsoNormal style='mso-list:l2 level1 lfo8;tab-stops:list .5in'><span | |
| lang=TR style='mso-ansi-language:TR'>Composed Modules (stay tuned (bum bum | |
| bum))<o:p></o:p></span></li> | |
| </ul> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'><o:p> </o:p></span></p> | |
| <p class=MsoNormal><span lang=TR style='mso-ansi-language:TR'>The J2EE module | |
| definitions build on the use case concepts. As discussed in the use cases, a | |
| module is a collection of files in a project. However, for the remainder of | |
| this document, the term abstract module will refer to an intangible concept (to | |
| be defined more explicitly later on). The abstract module concept represents | |
| the abstraction of a physical module in terms that can be understood | |
| programmatically. The specifics of how these projects<span | |
| style='mso-spacerun:yes'> </span>are constructed is not important to the | |
| discussion of modules.<o:p></o:p></span></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>A <b style='mso-bidi-font-weight:normal'>resource</b> is a | |
| abstraction which contains model elements. A <b style='mso-bidi-font-weight: | |
| normal'>resource set </b>is a collection of related persistent resources. The | |
| resource set manages the collection of resources and produces notifications for | |
| changes to that collection. A <b style='mso-bidi-font-weight:normal'>project resource | |
| set </b>is a resource set defined at the project level, meaning the project | |
| resource set manages the collection of resources for that project. There is | |
| only one project resource set per project, ensuring each resource is only | |
| loaded once within the workspace. Each resource contained in the project | |
| resource set has a <b style='mso-bidi-font-weight:normal'>relative URI, </b>which<b | |
| style='mso-bidi-font-weight:normal'> </b>is a partial URI with respect to or | |
| relative to the project. A <b style='mso-bidi-font-weight:normal'>WTP project | |
| resource set </b>is defined in terms of module resources, which contain | |
| abstract module models (defined later).</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>A <b style='mso-bidi-font-weight:normal'>URI converter</b> | |
| may be configured on a resource set to normalize relative URIs for comparison | |
| and to monitor access to the backing store.<span style='mso-spacerun:yes'> | |
| </span>The resource set will use this converter to produce an input or output | |
| stream for a URI, during serialization or deserialization of a resource, and | |
| during a load to check for a resource URI match to one of its known resources.</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>An <b style='mso-bidi-font-weight:normal'>abstract module</b> | |
| is a logical, abstracted, first-class model of a deployable artifact. The | |
| initial assumption will be that abstract modules must be contained within one | |
| project and thus use one project resource set.<span style='mso-spacerun:yes'> | |
| </span>However, a project and the associated project resource set may contain | |
| more than one abstract module.</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span lang=TR style='color: | |
| black;mso-ansi-language:TR'>A <b style='mso-bidi-font-weight:normal'>J2EE a</b></span><b | |
| style='mso-bidi-font-weight:normal'><span lang=TR style='mso-ansi-language: | |
| TR'>bstract m<span style='color:black'>odule </span></span></b><span lang=TR | |
| style='color:black;mso-ansi-language:TR'>is a collection of one or more | |
| components, organized by a standard layout, targeted for the same container | |
| upon deployment</span><span style='color:black'>, and which can be archived | |
| conforming to the J2EE specification. Modules always contain a set of files, | |
| but all J2EE modules also contain specialized files called <b style='mso-bidi-font-weight: | |
| normal'>deployment descriptors</b>. Deployment descriptors describe the | |
| contents of deployment units and configure components and applications to their | |
| environment. They also externalize the relationships between components, so those | |
| relationships can be managed without writing or changing program code. There | |
| are five core types of J2EE deployment descriptors, each of which corresponds | |
| to a type of J2EE deployment unit: <o:p></o:p></span></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>Application<o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>Application Client <o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>EJB <o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>Web <o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l3 level1 lfo7;tab-stops:list 1.0in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>Resource Adapter for | |
| Java Connector<o:p></o:p></span></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'>Vendor-specific | |
| deployment descriptors may be defined for different </span><st1:City><st1:place><span | |
| style='color:black'>Enterprise</span></st1:place></st1:City><span | |
| style='color:black'> application containers to provide additional information. <o:p></o:p></span></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><o:p> </o:p></span></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'>Each | |
| deployment descriptor describes a set of contained objects which are | |
| represented through <b style='mso-bidi-font-weight:normal'>module models</b></span>.<span | |
| style='mso-spacerun:yes'> </span>The root abstract module model object for the | |
| deployment descriptor is the associated J2EE abstract module type object.</p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 1.5in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><o:p> </o:p></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>The <b | |
| style='mso-bidi-font-weight:normal'>Application</b> is the root object for an EAR | |
| module.<o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>The <b | |
| style='mso-bidi-font-weight:normal'>EJBJar</b> is the root object for an EJB | |
| module.<o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>The <b | |
| style='mso-bidi-font-weight:normal'>WebApp</b> is the root object for a Web | |
| module.<o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>The <b | |
| style='mso-bidi-font-weight:normal'>ApplicationClient</b> is the root object | |
| for an Application Client module.<o:p></o:p></span></p> | |
| <p class=MsoNormal style='margin-left:1.0in;text-indent:-.25in;line-height: | |
| 12.0pt;mso-list:l6 level1 lfo6;tab-stops:.5in 1.0in list 1.5in left 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><![if !supportLists]><span | |
| style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family: | |
| Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'> | |
| </span></span></span><![endif]><span style='color:black'>The <b | |
| style='mso-bidi-font-weight:normal'>Connector</b> is the root object for a JCA | |
| Connector module.<o:p></o:p></span></p> | |
| <p class=MsoNormal style='line-height:12.0pt;tab-stops:.5in 1.0in 2.0in 2.5in 3.0in; | |
| mso-layout-grid-align:none;text-autospace:none'><span style='color:black'><span | |
| style='mso-spacerun:yes'> </span></span></p> | |
| <p class=MsoNormal>Before proceeding, it should be noted that there are two | |
| distinct metamodels in the tooling environment. First, J2EE abstract models | |
| allow framework clients to understand the J2EE-specific deployment descriptors | |
| and their third-party extensions. The tooling frameworks are built primarily to | |
| modify and update these models. There is also a separate model for | |
| understanding how modules and their contained resources can be constructed for | |
| deploying to server environments, which is referred to as <b style='mso-bidi-font-weight: | |
| normal'>ModuleCore</b>. </p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><b style='mso-bidi-font-weight:normal'>ModuleCore</b> can be | |
| used to acquire, create, and destroy <b style='mso-bidi-font-weight:normal'>abstract | |
| module contexts</b>. An <b style='mso-bidi-font-weight:normal'>abstract module | |
| context</b> is<b style='mso-bidi-font-weight:normal'> </b>used to manage | |
| multiple abstract modules per project. In the first implementation, an abstract | |
| module context will not span multiple projects. Each abstract module context identifies | |
| a unique custom defined abstract module using a module handle (see Server | |
| Tooling), server target type (see Server Tooling), an edit model (to be | |
| discussed later). </p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 | |
| style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; | |
| mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh: | |
| .5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'> | |
| <tr style='mso-yfti-irow:0'> | |
| <td width=590 valign=top style='width:6.15in;border:solid windowtext 1.0pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><!--[if mso & !supportInlineShapes & supportFields]><span | |
| style='mso-element:field-begin;mso-field-lock:yes'></span><span | |
| style='mso-spacerun:yes'> </span>SHAPE<span style='mso-spacerun:yes'> | |
| </span>\* MERGEFORMAT <span style='mso-element:field-separator'></span><![endif]--><!--[if gte vml 1]><v:group | |
| id="_x0000_s1067" editas="canvas" style='width:6in;height:198pt; | |
| mso-position-horizontal-relative:char;mso-position-vertical-relative:line' | |
| coordorigin="3960,10104" coordsize="7200,3394"> | |
| <o:lock v:ext="edit" aspectratio="t"/> | |
| <v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" | |
| o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> | |
| <v:stroke joinstyle="miter"/> | |
| <v:formulas> | |
| <v:f eqn="if lineDrawn pixelLineWidth 0"/> | |
| <v:f eqn="sum @0 1 0"/> | |
| <v:f eqn="sum 0 0 @1"/> | |
| <v:f eqn="prod @2 1 2"/> | |
| <v:f eqn="prod @3 21600 pixelWidth"/> | |
| <v:f eqn="prod @3 21600 pixelHeight"/> | |
| <v:f eqn="sum @0 0 1"/> | |
| <v:f eqn="prod @6 1 2"/> | |
| <v:f eqn="prod @7 21600 pixelWidth"/> | |
| <v:f eqn="sum @8 21600 0"/> | |
| <v:f eqn="prod @7 21600 pixelHeight"/> | |
| <v:f eqn="sum @10 21600 0"/> | |
| </v:formulas> | |
| <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> | |
| <o:lock v:ext="edit" aspectratio="t"/> | |
| </v:shapetype><v:shape id="_x0000_s1068" type="#_x0000_t75" style='position:absolute; | |
| left:3960;top:10104;width:7200;height:3394' o:preferrelative="f"> | |
| <v:fill o:detectmouseclick="t"/> | |
| <v:path o:extrusionok="t" o:connecttype="none"/> | |
| <o:lock v:ext="edit" text="t"/> | |
| </v:shape><v:rect id="_x0000_s1069" style='position:absolute;left:4410; | |
| top:10258;width:6300;height:3086'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1069'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>ModuleCore</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1070" style='position:absolute;left:4560;top:10721; | |
| width:2850;height:1080'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1070'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>ModuleContext</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1071" style='position:absolute;left:7560;top:10721; | |
| width:2850;height:1080'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1071'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>ModuleContext</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1072" style='position:absolute;left:4560;top:11955; | |
| width:2850;height:1080'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1072'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>ModuleContext</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1073" style='position:absolute;left:7560;top:11955; | |
| width:2850;height:1080'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1073'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>ModuleContext</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1074" style='position:absolute;left:4710;top:11029; | |
| width:1050;height:618'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1074'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>AbstractModule</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1076" style='position:absolute;left:7710;top:11030; | |
| width:1050;height:617'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1076'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>Abstract<span style='mso-spacerun:yes'> </span>Module</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1077" style='position:absolute;left:8910;top:11029; | |
| width:1050;height:618'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1077'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>Abstract<span style='mso-spacerun:yes'> </span>Module</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1078" style='position:absolute;left:7710;top:12264; | |
| width:1050;height:617'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1078'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>Abstract Module</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1079" style='position:absolute;left:8910;top:12264; | |
| width:1050;height:617'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1079'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>Abstract<span style='mso-spacerun:yes'> </span>Module</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1080" style='position:absolute;left:4710;top:12264; | |
| width:1050;height:617'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1080'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>Abstract Module</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1081" style='position:absolute;left:5910;top:12264; | |
| width:1050;height:617'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1081'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>Abstract Module</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><v:rect id="_x0000_s1156" style='position:absolute;left:5910;top:11030; | |
| width:1050;height:618'> | |
| <v:textbox style='mso-next-textbox:#_x0000_s1156'> | |
| <![if !mso]> | |
| <table cellpadding=0 cellspacing=0 width="100%"> | |
| <tr> | |
| <td><![endif]> | |
| <div> | |
| <p class=MsoNormal>AbstractModule</p> | |
| </div> | |
| <![if !mso]></td> | |
| </tr> | |
| </table> | |
| <![endif]></v:textbox> | |
| </v:rect><w:wrap type="none"/> | |
| <w:anchorlock/> | |
| </v:group><![endif]--><![if !vml]><img width=576 height=264 | |
| src="FlexibleProjectConcepts_files/image001.gif" v:shapes="_x0000_s1067 _x0000_s1068 _x0000_s1069 _x0000_s1070 _x0000_s1071 _x0000_s1072 _x0000_s1073 _x0000_s1074 _x0000_s1076 _x0000_s1077 _x0000_s1078 _x0000_s1079 _x0000_s1080 _x0000_s1081 _x0000_s1156"><![endif]><!--[if mso & !supportInlineShapes & supportFields]><v:shape | |
| id="_x0000_i1025" type="#_x0000_t75" style='width:6in;height:198pt'> | |
| <v:imagedata croptop="-65520f" cropbottom="65520f"/> | |
| </v:shape><span style='mso-element:field-end'></span><![endif]--></p> | |
| </td> | |
| </tr> | |
| <tr style='mso-yfti-irow:1;mso-yfti-lastrow:yes'> | |
| <td width=590 valign=top style='width:6.15in;border:solid windowtext 1.0pt; | |
| border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; | |
| padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>Figure 1: Overview of ModuleCore, ModuleContext, and Abstract | |
| Module relationships.</p> | |
| </td> | |
| </tr> | |
| </table> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>Meanwhile, <b style='mso-bidi-font-weight:normal'>edit | |
| models</b> provide a shared, reference counted, read/write controlled amalgamation | |
| of a related set of resources. Primarily, resources and Java working copies are | |
| wrapped by an Edit Model in order to represent a coherent and consistent view | |
| for clients. Managing these resources as a group, allows changes to be | |
| committed or rolled back as a consistent unit of work. </p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>Typically, specialized types of edit models have | |
| aforementioned knowledge of their expected or required resources for a given | |
| type of abstracted module. Not surprisingly, clients may wish to add | |
| capabilities and additional known resources to existing edit model. The edit | |
| model will attempt to load these resources so that they may be managed with the | |
| existing, known resources. <o:p></o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>Edit models are created via an extension which defines the <b | |
| style='mso-bidi-font-weight:normal'>edit model factory</b>. The lifecycle of | |
| how edit models are created and destroyed will be covered in the API Concepts | |
| document.</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>Typically, J2EE components are built on a regular schedule | |
| (e.g. daily) and packaged as Enterprise Archives (EARs). Collaboration between | |
| teams and individual members is facilitated by these build artifacts which are | |
| used to back current development. These are referred to as <b style='mso-bidi-font-weight: | |
| normal'>target EARs</b>. Developers set up their development environments so | |
| the components they are actively working on are loaded directly from a source | |
| repository and the other components are loaded from the Target EARs.</p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>The use of target EARs is analogous to self-hosting in | |
| Eclipse. The idea is to only have abstract modules that are currently being | |
| developed in the workspace. All other dependencies will be loaded from a target | |
| EAR. Changing target EARs would simply be a matter of adjusting some abstract module | |
| property (just like PDE).<span style='mso-spacerun:yes'> </span>Loading | |
| projects from the repository, or deleting them from the workspace would change | |
| where they were loaded from as well (also like PDE).<o:p></o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>Rather than using target EARs, EAR files may be extracted to | |
| a structure which represents its contained abstract modules.<span | |
| style='mso-spacerun:yes'> </span>The remaining non-module jar archives are | |
| called <b style='mso-bidi-font-weight:normal'>utility jars</b>. Utility jars | |
| are regular jars which the various abstract modules can depend on.<span | |
| style='mso-spacerun:yes'> </span>Utility jars may exist as jar files within | |
| the EAR abstract module which is useful when a developer is not currently | |
| working on the contents of the utility jar. <span | |
| style='mso-spacerun:yes'> </span>All abstract module archives must (utility | |
| jars have the option) be handled in separate abstract modules.<b | |
| style='mso-bidi-font-weight:normal'><o:p></o:p></b></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>An <b style='mso-bidi-font-weight:normal'>extracted</b> <b | |
| style='mso-bidi-font-weight:normal'>module</b> or <b style='mso-bidi-font-weight: | |
| normal'>utility jar module</b> is simply a module containing the extracted | |
| contents of the archive.<span style='mso-spacerun:yes'> </span>The benefit of | |
| using extracted modules is all the artifacts can be modified.<span | |
| style='mso-spacerun:yes'> </span>This would be useful if a developer did not | |
| have access to the source repository.<span style='mso-spacerun:yes'> | |
| </span>Typically, however, instead of using extracted modules, a developer | |
| would connect to a source repository. Jars within WARs can be extracted as modules | |
| within Eclipse projects (like utility jar modules) or can remain in the WAR in | |
| binary form. </p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| <p class=MsoNormal>Document Concepts</p> | |
| <table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 | |
| style='border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt; | |
| mso-yfti-tbllook:480;mso-padding-alt:0in 5.4pt 0in 5.4pt;mso-border-insideh: | |
| .5pt solid windowtext;mso-border-insidev:.5pt solid windowtext'> | |
| <tr style='mso-yfti-irow:0'> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>Chuck<span style='mso-spacerun:yes'> </span>Bridgham</p> | |
| </td> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| border-left:none;mso-border-left-alt:solid windowtext .5pt;mso-border-alt: | |
| solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><a href="mailto:cbridgha@us.ibm.com">cbridgha@us.ibm.com</a><o:p></o:p></p> | |
| </td> | |
| </tr> | |
| <tr style='mso-yfti-irow:1'> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; | |
| padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>Jialin C. Chen </p> | |
| </td> | |
| <td width=295 valign=top style='width:221.4pt;border-top:none;border-left: | |
| none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; | |
| mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><a href="mailto:jialin@us.ibm.com">jialin@us.ibm.com</a></p> | |
| </td> | |
| </tr> | |
| <tr style='mso-yfti-irow:2'> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; | |
| padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>Michael D. Elder</p> | |
| </td> | |
| <td width=295 valign=top style='width:221.4pt;border-top:none;border-left: | |
| none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; | |
| mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><a href="mailto:mdelder@us.ibm.com">mdelder@us.ibm.com</a></p> | |
| </td> | |
| </tr> | |
| <tr style='mso-yfti-irow:3'> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; | |
| padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>Derek Holt</p> | |
| </td> | |
| <td width=295 valign=top style='width:221.4pt;border-top:none;border-left: | |
| none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; | |
| mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><a href="mailto:dfholt@us.ibm.com">dfholt@us.ibm.com</a></p> | |
| </td> | |
| </tr> | |
| <tr style='mso-yfti-irow:4'> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; | |
| padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>John Lanuti</p> | |
| </td> | |
| <td width=295 valign=top style='width:221.4pt;border-top:none;border-left: | |
| none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; | |
| mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><a href="mailto:jlanuti@us.ibm.com">jlanuti@us.ibm.com</a></p> | |
| </td> | |
| </tr> | |
| <tr style='mso-yfti-irow:5;mso-yfti-lastrow:yes'> | |
| <td width=295 valign=top style='width:221.4pt;border:solid windowtext 1.0pt; | |
| border-top:none;mso-border-top-alt:solid windowtext .5pt;mso-border-alt:solid windowtext .5pt; | |
| padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal>Jason Sholl</p> | |
| </td> | |
| <td width=295 valign=top style='width:221.4pt;border-top:none;border-left: | |
| none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt; | |
| mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt; | |
| mso-border-alt:solid windowtext .5pt;padding:0in 5.4pt 0in 5.4pt'> | |
| <p class=MsoNormal><a href="mailto:jsholl@us.ibm.com">jsholl@us.ibm.com</a></p> | |
| </td> | |
| </tr> | |
| </table> | |
| <p class=MsoNormal><o:p> </o:p></p> | |
| </div> | |
| </body> | |
| </html> |