ࡱ> 0>( CD/ 00DTimes New Roman0Wo 0DTahomaew Roman0Wo 0" DArialew Roman0Wo 0"0DWingdingsRoman0Wo 0c0.  @n?" dd@  @@`` xp +     !#    ( 0AA@8g4FdFd0ppp@  Eʚ;ʚ;<4ddddЁ 0<4!d!dЁ 0<4BdBdЁ 0r0___PPT10 2___PPT9/ 0? %O  =o32Ada Application Program Interface (API) Management/#Clyde Roby SIGAda December 11, 2002$P$ - A DisclaimerTClyde Roby is NOT President and CEO of Ada Core Technologies The document upon which this discussion is based is an early draft and is still incomplete Outline of discussion Purpose, Background, Overview, Definitions Approach for Registered and Managed APIs Responsibilities Charter, Membership, & |=Z[ZZ|ZZ,[|&\)PurposeTo provide a mechanism for the management of Application Program Interfaces (APIs) for the Ada programming language Standardized APIs Registered APIs  focus of our discussion Unregistered APIs*tNt$N [c. BackgroundLMost Ada bindings to APIs are unmanaged Most Ada bindings are hard to find If found, little information is included with them No automatic announcement of updates (if any) Do not evolve as Ada evolves ISO/WG9 requested proposals from SIGAda and Ada-Europe ISO/WG9, Ada-Europe, and SIGAda work together to manage Ada bindings to APIsMM$) /Overview5Registered APIs will be publicly available Ada API web page Compilable Ada API Artifacts (examples, tutorials, known problems, lessons learned, etc.) Procedures to easily Register APIs APIWG responsible for registration and public availability (on web page or links) APIWG subgroups to maintain/evolve API ???&+ + ,+ ]* DefinitionsACM SIGAda, Ada-Europe Ada Ada Binding Application Program Interfaces (APIs) API Working Group (APIWG) and APIWG Subgroups API Home Page ISO/WG9Z>r^+Definition of APIs|Standardized APIs  provided in the Ada LRM or through secondary ISO standards (e.g., ASIS) Registered APIs  Ada bindings or APIs made publicly available via the API web page; individual or organization is responsible for each Registered API Unregistered APIs  neither, but a link may be provided on the API web page?Z?,$F_,Definition of Registered APIsvRegistered APIs  keeping up with who/where API is developed and/or maintained by a third party, with permission Registered and Managed APIs  Subgroup responsible for (possible development and) maintenance of API; changes managed via consensus; Subgroup baselines and versions API Registered APIs are NOT standards&<Z. `-API Home Page / Web SiteProvides compilable Ada API for each Registered API Includes valuable artifacts Examples, tutorials, useful tips Known problems, lessons learned, etc. On SIGAda s web page -- ??? May contain links to Unregistered APIs May be mirrored on Ada-Europe website6PGiPGi>  Ja/API Working Group (APIWG)ACM SIGAda chartered Working Group to manage Registered APIs Chair s reponsibilities include Updating API web site for all Registered APIs Coordinating work of all Subgroups Define Charter for APIWG*]j]$j ,:rb.APIWG Subgroups/Subgroup for each Registered and Managed API Subgroup chair is responsible for the maintenance and evolution of the particular Registered and Managed API Subgroup responsible for evolving API (via consensus), including baselining the API, versioning of new releases, and identifying associated artifacts0Z0 Jc0Approach for Registered APIsProvide current set of developed Registered APIs on web page API is provided unchanged from originally developed API, with associated artifacts If requestor is not the API developer, APIWG Chair seeks proper permissions to place API (now and forever?) in the public domain If permission is granted, all artifacts, including source code placed on APIWG web page; APIWG Chair announces it; others may also add artifacts (tutorials, examples, etc.)Zd1(Approach for Registered and Managed APIs:Ada Binding evolves as API evolves Subgroups responsible for evolution and maintenance of each API Web page identified and email list created Necessary artifacts can be placed on web site (documentation, tutorials, examples, etc.) Email list used for Subgroup discussions, Subgroup business, notification to others;Z;70Responsibilities of SIGAda ECCreates APIWG and appoints Chair Approves APIWG Charter Approves creation of APIWG Subgroups and Chairs Provides necessary support to APIWG and Chair, all Subgroups and Chairs Yearly assessment of Subgroup viability and possible dissolutione2Responsibilities of APIWG ChairMaintain current artifacts for all Registered APIs Secure approval to place third party APIs on APIWG web page Facilitate SIGAda EC approval of each Subgroup Ensure Subgroups are viable and maintain effective web pages for their APIzhf3#Responsibilities of Subgroup ChairsDevelop, Maintain, Evolve the Ada Binding to their API (via consensus) Maintain their API and its artifacts on the API s web page Approve baselines and versions of their API Recommend replacements of their APIs when they are no longer viable1Members of the Ada Community /Recommend to the APIWG Chair those APIs to be established as Registered APIs Recommend to the APIWG Chair those APIs to be established as Registered and Managed APIs Provide feedback to the APIWG Chair and API Subgroup Chairs to make more (valuable and useful) information available to the Ada community0Z0" 2 APIWG CharterTo be created from discussions about this presentation in this forum this evening Should there be separate Charters for each Subgroup?(3 MembershipMembership in the APIWG or any of its Subgroups is open to any interested party Members are responsible for their own expenses APIWG Chair must be a member of both ACM and SIGAda (or Ada-Europe) Other members are encouraged to be members of SIGAda or Ada-EuropeP74APIWG Home PageA resource to the entire Ada community Publicly available (no password) To upload the necessary artifacts to the APIWG web pages, one must have an account on the ACM server (this usually means that one must be a member of ACM and SIGAda)Z$,5APIWG Email ListsEach Subgroup will have their own email discussion list Anybody can be a member of that Subgroup s email list Any member of the list can freely post Others posts must be approved by the list owner List owner must be a member of ACM and SIGAdaZ6Announcement of API VersionsEach API Subgroup is responsible for setting the current version of their API Notification of the latest version should be Posted on the web Announced in Ada Letters Announced through the Subgroup s email list New versions will be in the monthly announcements of the SIGAda-Announce list (also? Ada-Europe, Team-Ada, WG9)*{ZZ{Pm7Why SIGAda and Ada-Europe?&, Lightweight process carried out by volunteers to share bindings to APIs among the Ada community Provides a forum and mechanism to evolve APIs as needed so that changes can be made without involving ISO/WG9 When ready, APIs may be formally standardized by ISO/WG9Rw4Candidates for possible APIs?&Possible Subgroups to Register APIs Files/Directories  done Sockets  exists within GNAT HTTP/CGI Timezones Environment variables ODBC/JDBC or equivalent XML others& Base upon POSIX and/or Win32 and/or others? Can we define these within a year?B$ZZOZ$Oc y5 Discussion & /EFGHIJKLMN O P x z t* ` ` 3Zh` f:%rv` ffL=Wl"`½` 3M?Jm!3)q` mqVhXvqFVH ` hf?" dd@*?lPd@    @ `  n?" dd@   @@``PR    @ ` `0p>> &&\%(  \ T  \ " \ Nd @ "p \ B "  \ Hd "pn \ 0 "  \ Hd "@ \ B "   \ N @ "   \ H @ "   \ Hd "p`   \ Hd " n  \ 0 "pn \ 0 "  \ N @ "0 \ Hd " \ H "  \ Hd " \ N @ " \ B "x   \ B "> X \ # BCDEPFX5% LbQDV[[[VrVfQZLNLNFNFHFHAH<H7B2B,<'0"*&  ~ ',z7VF8V`fkppplkZfB`6[$VB *  wX:'2<LQW[ `ff~fHfff`[dQFL:F.A< 2 2 , , , 2 2 7 7 A Fz F\ L Q [6 f p {X 4  { u p k S 8 $ p $b 2N <6 L T _ b f i mj nF k, g [ VQLFAlN!1@L`hffflfB`[VVQLFA722v,j,^,L,@,427FV`tkJu&r6du:k`VLA7,""""""z't,h7\AVFPLDV2[ `fkppuuxuZpBp*kf`@"#| \  >BCDEF @ &06B]T?frx~t~bxJr>l,f `TNB60*$~a$C0<HZ`Zl$rxxxLxxxrli`KZ?T3N!H< < 6 6 6 < < B B N T Tb Z ` l7 x Z 6  ~ ` N * $q *e <S H; Z# f r r x ~ ~p L ~. x l f`ZTN9#|g$O31<HWfrxgxxxlxBrlff`ZTNB<<w6k6_6M6A65<BTfrv~L"o3b8~rfZNB6*****y0s6gB[NUTOZCf1lrx~xZB*~xr`f*lBrZrxxxxrrlf`1ZCTOHUB[<g0s$y$0<HT`8lbx3o"Lxvl`TB05*A$M$_$k$w$**0<BHNTTZB`lfffgff`M9?&a| 3HN T Z. fL lp r l l f ` `# T; HS 6e *q    0 N l r x ~  6 Z ~ r7 f Z Nb H B B < 0 0 * * $ $ $ **!63<?BKHiNZ`ffLffff$`ZZNH6*Ca~  $0<B N,T>ZJ`bftlrrrlf`?T]B0$ 7 Oc v     ;GM$M*S0S6S<SBYBYHeHqN}TTZZZNTlNHZZl`Nflllf}fq`eZYZYTSTSNSHSBM<M6G0;*5$/$cO6il@" \ <l8 " `}  T Click to edit Master title style! !$ \ 0; " `  RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S \ 0? "`   d*     \ 0A "] `}  d*     \ 0h "` `  b*  H \ 0޽h ? ` 3Zh80___PPT10. - Curtain Calla&  %%0`a%(  ` T  ` " ` Nd @ "p ` B "  ` Hd "pn ` 0 "  ` Hd "@ ` B "   ` N @ "   ` H @ "   ` Hd "p`   ` Hd " n  ` 0 "pn ` 0 "  ` N @ "0 ` Hd " ` H "  ` Hd " ` N @ " ` B "x   ` B "> X ` # BCDEPFX5% LbQDV[[[VrVfQZLNLNFNFHFHAH<H7B2B,<'0"*&  ~ ',z7VF8V`fkppplkZfB`6[$VB *  wX:'2<LQW[ `ff~fHfff`[dQFL:F.A< 2 2 , , , 2 2 7 7 A Fz F\ L Q [6 f p {X 4  { u p k S 8 $ p $b 2N <6 L T _ b f i mj nF k, g [ VQLFAlN!1@L`hffflfB`[VVQLFA722v,j,^,L,@,427FV`tkJu&r6du:k`VLA7,""""""z't,h7\AVFPLDV2[ `fkppuuxuZpBp*kf`@"#| `  >BCDEF @ &06B]T?frx~t~bxJr>l,f `TNB60*$~a$C0<HZ`Zl$rxxxLxxxrli`KZ?T3N!H< < 6 6 6 < < B B N T Tb Z ` l7 x Z 6  ~ ` N * $q *e <S H; Z# f r r x ~ ~p L ~. x l f`ZTN9#|g$O31<HWfrxgxxxlxBrlff`ZTNB<<w6k6_6M6A65<BTfrv~L"o3b8~rfZNB6*****y0s6gB[NUTOZCf1lrx~xZB*~xr`f*lBrZrxxxxrrlf`1ZCTOHUB[<g0s$y$0<HT`8lbx3o"Lxvl`TB05*A$M$_$k$w$**0<BHNTTZB`lfffgff`M9?&a| 3HN T Z. fL lp r l l f ` `# T; HS 6e *q    0 N l r x ~  6 Z ~ r7 f Z Nb H B B < 0 0 * * $ $ $ **!63<?BKHiNZ`ffLffff$`ZZNH6*Ca~  $0<B N,T>ZJ`bftlrrrlf`?T]B0$ 7 Oc v     ;GM$M*S0S6S<SBYBYHeHqN}TTZZZNTlNHZZl`Nflllf}fq`eZYZYTSTSNSHSBM<M6G0;*5$/$cO6il@" ` << "p  T Click to edit Master title style! ! ` 0\? " `    W#Click to edit Master subtitle style$ $ ` 0+ "] `}  b*   ` 0+ "`   d*     ` 0+ "] `}  d*    H ` 0޽h ? ` 3Zh80___PPT10. - 0 zrP$ (  $ $ 0/+ P   + P*   $ 01+    + R*  d $ c $ ?  + $ 07+  0 + RClick to edit Master text styles Second level Third level Fourth level Fifth level!     S $ 6:+ _P  + P*   $ 6\;+ _  + R*  H $ 0޽h ? 3380___PPT10.vj `((  ( ( 00%+ P   + X*  ( 0)+    + Z*  ( 6H-+ _P  + X*  ( 6|+ _  + Z* H ( 0޽h ? 3380___PPT10.v0x}  h$(  hr h S @+`p + r h S +` `   + H h 0޽h ? ` 3Zh___PPT10i.M 5+D=' = @B +$  p$(  r  S h+\ `}  + r  S +\ ` + H  0޽h ? ` 3Zh80___PPT10.P$  $(  r  S J\ `}   r  S \ `  H  0޽h ? ` 3Zh80___PPT10.H0$  $(  r  S +\ `}  + r  S X+\ ` + H  0޽h ? ` 3Zh80___PPT10.t$  $(  r  S +\ `}  + r  S 0+\ ` + H  0޽h ? ` 3Zh80___PPT10.™ eo$  $(  r  S ,P\ `}  P r  S ,P\ ` P H  0޽h ? ` 3Zh80___PPT10.Ipu$  $(  r  S $>\ `}   r  S A\ `  H  0޽h ? ` 3Zh80___PPT10.IQ$  $(  r  S 4P\ `}  P r  S @8P\ ` P H  0޽h ? ` 3Zh80___PPT10.Iz$  $(  r  S @P\ `}   r  S AP\ ` P H  0޽h ? ` 3Zh80___PPT10.Iվ$   $(  r  S FP\ `}  P r  S 8GP\ ` P H  0޽h ? ` 3Zh80___PPT10.I$  0$(  r  S N"\ `}  " r  S O"\ ` " H  0޽h ? ` 3Zh80___PPT10.In$  @$(  r  S "\ `}  " r  S "\ ` " H  0޽h ? ` 3Zh80___PPT10.JX[$  P$(  r  S "\ `}  " r  S <"\ ` " H  0޽h ? ` 3Zh80___PPT10.J,$  `$(  r  S x-"\ `}  " r  S 4."\ ` " H  0޽h ? ` 3Zh80___PPT10.l$  $(  r  S x;"\ `}  " r  S <"\ ` " H  0޽h ? ` 3Zh80___PPT10.J`Iq$  $(  r  S @"\ `}  " r  S A"\ ` " H  0޽h ? ` 3Zh80___PPT10.K` $  $(  r  S ڤ\ `}   r  S ڤ\ `  H  0޽h ? ` 3Zh80___PPT10.opׯ$  $(  r  S G\ `}   r  S H\ `  H  0޽h ? ` 3Zh80___PPT10.p0¼6$  $(  r  S Ŀ\ `}   r  S \ `  H  0޽h ? ` 3Zh80___PPT10.pX$  $(  r  S \ `}   r  S \ `  H  0޽h ? ` 3Zh80___PPT10.p$    $(  r  S P\ `}   r  S  \ `  H  0޽h ? ` 3Zh80___PPT10.p$   @$(  r  S X\ `}   r  S xY\ `  H  0޽h ? ` 3Zh80___PPT10.qP$   `$(  r  S j\ `}   r  S h-,<DpCdx,@\Xܤ4`hw@T,tzmOh+'0J hp    ,8@3ML: a quasi-functional language with strong typingi Schonbergi- Curtain Calluncrobyin 31yMicrosoft PowerPointl l@@{I$^@Ea!G>4q- $>HH>j- $HRRHd- $R\\Ra- $\ff\` - $fhhf---&&--- !(x---& &--`- $d- $k- $s- $z - $~- $- $  ---&&&P&--`- $PZZPb- $ZddZe- $dnndj- $nxxno- $xxt- $y- $| - $~- $- $---&&&0P&--\- $0::0Q- $:DD: $DNND` - $NPPN---&&&0&--K- $ O- $  V- $\- $((` - $(00(---&&&h&--a- $hrrhj- $r||rw- $||- $---&&&(&--- $}- $z - $v- $p- $j- $  e- $  b- $  ` - $ (( ---&&` --- !---` --- !*&---& &--^- $]- $ $  ---&&&p&--_- $  ]- $  Z- $U- $((N- $(22(D- $2<<2:- $<FF<.- $FPPF" - $PZZP- $ZddZ - $dnnd- $nppn---&&&H&--a- $HRRHf- $R\\Rp- $\ff\y- $fppf~- $pzzp- $zz $t- $j- $b- $` - $---&&&&--- $}- $z - $v- $p- $j- $e- $b- $` - $---&&&&--_- $]- $ $` - $---&&&&--c- $v- $- $---&&&&--- ${ - $s- $j- $c- $` - $---&&&&--&&- $&&&- &$yjYPJGEC?94.)$  {smfa_]ZWTQNLJHFDB@?:+ ~}{zvslgb[UPK<+ vmf_YTPMJGDCBA@?><:98630,($  &&-&& &&-B( UUUU-&&$yjYPJGEC?94.)$  {smfa_]ZWTQNLJHFDB@?:+ ~}{zvslgb[UPK<+ vmf_YTPMJGDCBA@?><:98630,($  &&- $&- --&&&&--&&- $66- $6kk6- $kk- $- $  - $ AA - $AwwA $ww- $ $- $MM $MM- $- $- $##- $#XX#- $XX- $&&&- &j$ZVOIFD@:5/*%   |tngb`^[XUROMKIGECA@;, ~|{wvspjfb]YUNID<+ ~vmf_YTPMJGDCBA@?><:98630,($    $(,03689:<>?@ABCDGJMPTY_fmv~ +<CHPX`ejotwy~ ,;@ACEGIKMORUX[^`bgnt|   %*/5:@DFKPUY^bfilptx|{wsnjfb^&&-&& &&-&&j$ZVOIFD@:5/*%   |tngb`^[XUROMKIGECA@;, ~|{wvspjfb]YUNID<+ ~vmf_YTPMJGDCBA@?><:98630,($    $(,03689:<>?@ABCDGJMPTY_fmv~ +<CHPX`ejotwy~ ,;@ACEGIKMORUX[^`bgnt|   %*/5:@DFKPUY^bfilptx|{wsnjfb^&&- $66- $6kk6- $kk- $- $  - $ AA - $AwwA $ww- $ $- $MM $MM- $- $- $##- $#XX#- $XX- $&- --&&&&/&qw@' LSwUSw0- &Gy& --iyH-- @"Tahomaw@\' LSwUSw0- . 2 Ada &#". . 2 Ada &#". .%2 Application Program &##"#$###"6. .%2 Application Program &##"#$###"6. .2 $Interface (API) $"""&#. .2 " Interface (API) $"""&#. .2 p+ Management1"$"#"6!$. .2 n) Management1"$"#"6!$.--Q1-- @"Tahomaw@' LSwUSw0- .2  Clyde Roby . .2  Clyde Roby . .2 SIGAda . .2 SIGAda . .!2 WDecember 11, 2002p  . .!2 VDecember 11, 2002p  .--"System 0-&TNPP &՜.+,0p     On-screen ShowiNew York University Times New RomanTahomaArial Wingdings Curtain Call3Ada Application Program Interface (API) Management A DisclaimerPurpose Background Overview DefinitionsDefinition of APIsDefinition of Registered APIsAPI Home Page / Web SiteAPI Working Group (APIWG)APIWG SubgroupsApproach for Registered APIs)Approach for Registered and Managed APIsResponsibilities of SIGAda EC Responsibilities of APIWG Chair$Responsibilities of Subgroup ChairsMembers of the Ada CommunityAPIWG Charter MembershipAPIWG Home PageAPIWG Email ListsAnnouncement of API VersionsWhy SIGAda and Ada-Europe?Candidates for possible APIs? Discussion  Fonts UsedDesign Template Slide Titles_d+robyroby  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwyz{|}~Root EntrydO)Current UserSummaryInformation(xJPowerPoint Document(DocumentSummaryInformation8