Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: BULFON в Sep 11, 2007, 13:58 Да се напише скрипт (скриптове, програми), които работят като web service. Т.е. "слушат" на някой порт за заявка (HTTP) и отговарят. Целта е произведеното от тях да може лесно да бъде консумирано от различни други уеб услуги или сайтове.
В случая може да се ползва директно изхода от програми като fortune, рибата в гном или всякакви такива. Може и да работи с MySQL база данни с вицове за Чапай и Петка (някой има ли такава база). Изходът е добре да може да се избира - дали да е text/plain, applications/json (JSON - формат), application/xml. Сигурност не е нужна, но ако се реализира някаква схема за изибирателен достъп ще е плюс, за да не се закачат много маймуни. Логване на заявките също ще е добре да има. Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 11, 2007, 14:24 Мамка му
Разширете малко срока, бе хора С 2-3 дена На 15 си кацам в София и ще мога да се включа Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: BULFON в Sep 11, 2007, 14:45 Заради нашия редовен участник, конкура се удължен до 19ти .
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 11, 2007, 15:07 Е хубаво, ако едно участие е редовно
Много обичам да пиша сокет приложения на С, всъщност всичко което пратя ще бъде или на С или на PHP, шел скиптовете не са ми особено голяма сила Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 11, 2007, 15:24
1/1 са си цели 100% Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 11, 2007, 15:34 Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 11, 2007, 17:01 FIRST!
pwww.pl
pwww.conf
EDIT: Малка грешка за content-type-a Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: Hapkoc в Sep 11, 2007, 17:16
В /etc/shttpd.d/access_list се описват IP адресите, които могат да достъпват нещото. /var/log/shttpd/access_log е (както подсказва името) access log-а. :) Не гарантирам за пълно спазване на HTTP/1.1. :) Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: the_real_maniac в Sep 11, 2007, 21:36
offtopic:
http://www.linux-bg.org/cgi-bin....t=20656 Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 12, 2007, 02:53
offtopic:
http://www.linux-bg.org/cgi-bin....t=20656хахаххахаха - първият досетил се - имаш една бира от мен Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: cvludmiloff в Sep 12, 2007, 11:28 quotes.py
стартира се: python quotes.py от браузер: http://localhost:8000/fortune Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: zeridon в Sep 15, 2007, 10:22 VladSun бих препоръчал изхода да се загради в някакви разделители (от гледна точка на по добро парсене от външен софт)
Иначе до момента всичките предложения ми изглеждат читави Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: paranoid в Sep 15, 2007, 13:59 Според мен, условието не е зададено правилно, защото доколкото знам уеб-сървисите работят на основата на SOAP протокола, а доколкото видях нищо такова не се казваше в условието. Освен това къде е изискването за WSDL?
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 15, 2007, 14:50 @zeridon - по-скоро трябва да си оправя изхода в контекста на content-type-a, ама реших, че това трябва да е проблем на `fortune`
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: task_struct в Sep 16, 2007, 10:17 Ето и моя вариант:
Има някой бъгчета, но това ми е първата програма със сокети която пиша P.S. Мисля да напиша и един сървър на С#. Най-вероятно няма да успея да спазя срока, но да има пример и за такъв. Може пък на някой някога да му потрябва пример как НЕ се прави Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 15:54 Ъммм, замалко да изтърва срока бе
Ето я моята бъглива тъпотия:
Значи принципно е threaded и използва epoll, за да си се занимава със сокетите. Не се форк-ва отделен процес за всяка конекция (обаче това не е точно така с оглед на това, че се вика външна програма). Би следвало да е бързичко, пестеливо откъм ползване на РАМ и в тоя ред на мисли, да държи повече едновременни конекции, само дето не знам дали е така. Дотук с хубавите неща Това е най-малоумната многонишкова програма, която съм писал (добре де, на второ място след една друга подобна). Не съм се замислял особено, но на теория е напълно възможно при повечко едновременно работещи нишки да се случат лоши неща и програмата да се сбъгяса или крашне (например да се опита да изпише резултата вместо където трябва, в току-що затворен сокет ). Отделно, parse-ването на заявката е левашко и глупаво. И накрая, програмата използва libpthread (компилира се с флаг -lpthread) . Използва epoll като механизъм за poll-ване на сокетите за нови събития. Това е много хубаво нещо, само дето съществува от 2.6 насам, за всички със стари ядра, съжалявам, няма как да го компилирате Идеята е една нишка или процес да може да сервира някакъв брой конекции едновременно, да не се налага да се форк-ват нови такива за всяка нова, защото това е огромно разхищение. За да стане това, има два варианта за poll-ване на сокетите - select() и epoll_wait(). select е по-универсален, но се базира на обхождане на един свързан списък, и е доказано тромав Важното при тоя подход обаче е сокетите да са non-blocking, в противен случай занятието придобива малко идиотски измерения Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: BULFON в Sep 18, 2007, 17:55 А къде искате да се видим утре в 19.30?
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 18, 2007, 17:59
Аз мислех, че вече е уговорено ... както обикновено - в "Кривото" на ул. Будапеща? Ама, ако решите нещо друго - няма проблеми Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 18:32 Забелязвам сериозен overdesign и в двете решения на C. Keep it simple, stupid.
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 18:40 yup, KISS е хубав принцип, ама когато си си планирал нещата като хората. За има-няма половин ден занимания, толкова. Както вече споделих с един друг участник на средата вече псувах много лошо задето съм се захванал да правя тая глупост по тоя начин.Нещо се бях обсебил от няколко идеи, добре че изтърпях до края
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 19:14 gateway,
Например процес (или ако много държиш тред) за връзка опростява много решението без да е ужасно неефективно. Все пак това е задача, не код за production, най-важното е прегледността, а не оптимизацията. Има един програмист дето разправя, че твърде ранното оптимизиране било коренът на всички злини в програмирането... Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 19:18 Процесът да.
Нишката не. Не че ми пука особено, щото не съм си играл да правя никакъв locking. Ама когато имаш няколко нишки дето барат обща заделена памет, общи файлови дескриптори и общи променливи, вероятностите за race conditions не са никак малки. Процесите поне не си споделят толкова неща между родителя и "детето", там не се налага да мислиш особено за такива подробности. Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 19:21 Кой е казал, че нишките ще използват общи променливи? Всяка нишка си получава сокета, пуска fortune, праща и затваря...
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 19:30 ...в това време нишката все някъде среща block-ваща функция и task scheduler-a пали некоя друга нишка. Все пак не мисля да пиша 100 отделни функции за 100 отделни нишки, които правят в общи линии едно и също, само че върху различен дескриптор. Вторият thread променя стойността на някакъв прост брояч и също заспива в един момент. Scheduler-a подкарва отново първата нишка, която пък точно се намирала в някакъв цикъл, зависещ от същият този, сега "променен" брояч. И да речем става някаква малка или голяма беля, в зависимост от случая.
Това е само един възможен сценарии и много зависи от дизайна, естествено. Ама многонишковото програмиране като цяло е една грозна каша и трябва да се мисли много внимателно в началото, защото после изникват разни такива странни моменти. Освен това много трудно се дебъгва, например strace отказва да ти следи кво ставало в рамките на някоя нишка. Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 19:41 > Все пак не мисля да пиша 100 отделни функции за 100 отделни нишки,
> които правят в общи линии едно и също, само че върху различен > дескриптор. А на мен ми се струва, че изобщо не мислиш. Защо трябва да са отделни функциите след като локалните им променливи са в стека? Многонишковото програмиране не е чак толкова трудно, изисква известна практика. Тренирайте, защото multicore процесорите няма да изчезнат и единствения начин за ефективното им използване ще е многонишковото прогрмиране Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 20:08 Имам предвид ако имаш някаква структура описваща всички конекции, състоянието им и т.н. Няма как да ти е локална променлива все пак И например единия клиент затвори конекцията, ще се наложи нишката да го отрази по някакъв начин.
Уфф абе добре, ясно, пак опираме до дизайна на нещата очевидно И в тоя случай специално може да се измисли наистина От друга страна, този случай специално е доста прост В един по-забавен вариант, отделните клиенти трябва да си обменят някакви данни, например става въпрос за някакъв елементарен чат сървър, тогава вече няма да има измъкване от тая проблематика, поне аз сега не мога да измисля Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 20:15 > Имам предвид ако имаш някаква структура описваща всички конекции,
> състоянието им и т.н. За какво ти е такава структура Основната нишка прави fd = accept(); pthread_create(x, NULL, process_connection, fd); process_creation чете и пише от fd-то и накрая го затваря. Проблемът е от т.нар. embarrassingly parallel, няма нужда от никакви заключвания или комуникации между нишките. Отделно не виждам никакъв смисъл програмите сами да се занимават със сокети след като могат да използват inetd за целта. KISS! Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 20:18 Шшшшш xinetd RHEL не ползваш ли?
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 20:25 x, y, z, inetd си е inetd, от програмистка гледна точка няма разлика, за другото да му мислят сисадмините.
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 20:29 Ееееем...аз не съм програмист. inetd е много лоша идея между другото ако става въпрос за каквото и да било UDP-базирано
Между другото, от администраторска гледна хич не е едно и също Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 20:47 Няма смисъл да се обсъждат недостатъците на нещо за хипотетични случаи. Като се получи задание, се пише най-простото решение. Мери се, ако не върши работа се мисли за оптимизацията му. Всеки, който смята, че ще измисли от раз правилния дизайн е идиот
Друг умен човек (Фред Брукс, не съм сигурен, че е програмист) е казал: The question, therefore, is not whether to build a pilot system and throw it away. You will do that. The question is whether to plan in advance to build a throwaway, or to promise to deliver the throwaway to customers. Та, планирайте за throw-away... Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 21:04 Дадаааам, съгласен съм
Струва ми се все пак че много навътре го приемаш. Напълно ти приемам критиките, но не виждам какво толкова си се запритеснил. Върши си работата колкото трябва там, аз лично за себе си се радвам, че не отебах да го довърша, щото ми се въртеше из главата докато ходих да обядвам Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 21:07 > Струва ми се все пак че много навътре го приемаш.
Трябва да се образова младежта. Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 21:13 Е, мани ся, ела тука да я образоваш Отвъд океана и аз мога
Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: the_real_maniac в Sep 18, 2007, 21:58 offtopic:
Не е вярно gat3way и тук все още има младеж , която се образова , иска и/или пробва и не много очудващо, но (логично или не) със желание успява. :-) нищо че и аз вече се подготвям лека по-лека да ходя да уча в Germany + имах вече 1 предложение за работа там .. още по време на средното ми образование (но не заради това, което ме учеха в СОУ-то) , та ... да и аз се чудя как още има хора да работят тук ... и вече си отговарям, но все пак .. за учене определено ... тука е сложна работата - да не кажа , почти я няма .. хъх. и жалко нали така че полезно инфо, но мога да кажа, наистина очудващо как покрай всичко накрая можа да се види и нещо, което от едно четене да ти светне -> още идеи за това как нещат амогат да се правят simple и работещи Не е 'просто' да е 'просто', ами трябва да мислиш за throwaway-а, грубо казано ;-) И все пак бях почти убеден , че някой админ или модератор ще Ви среже, за малко по-острият тон, но браво :-D че все пак оцеляхте хаха Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: gat3way в Sep 18, 2007, 22:10 Тука си е забавно
Между другото, България наистина е забавна държава и само заради тарапаната която сами си сътворяваме си заслужава да живееш тука Това лято например се размотавах из Италия, Испания и Франция (от Франция се върнах преди 2 дена). Хубави държави и много странни мисли ти минават през главата там. Много надълго и много офф-топик ще стане ако трябва да обяснявам защо твърде много неща, които ни се виждат като проклятие тука всъщност са си направо бял кахър...накратко проблемът на България според мен е много прост и той е: просто нема достатъчно пари в системата за момента Всичко друго е просто следствие Но пък е интересно. Как и да е, въпрос на мислене според мен Аз лично нямам никакво намерение да емигрирам, в чужбина ходя само на почивки и екскурзии и не виждам защо трябва това да се променя Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: the_real_maniac в Sep 18, 2007, 23:20 Тук грешиш само в едно !
И то не е ... факта, ами извода от факта проблема на България не е че няма много пари в системата, ами той е следствие от проблема ! и да това все пак само по себе си е доста голям проблем. но за да решиш проблема , трябва да решиш причината а причината също е проблем и то по-голямият, и то причинителя значи е безмислено да решава 2-рият проблем причинен от първият , нещо като симптом на болест Х е болест Y защо да лекуваш болест Y? Та пробелма -> болест Х -> вика му се алчност, егоизъм , в деношно време КОРУПЦИЯ ! така - от там нататък честност, преданост - към работа или към дълг, медицински работник - себе си и клетвата , полицяй - реда, закона и съвестта, политик - съвест за хората и себе си и т.н , и т.н а учителя ... ехх тук мисля, че учетителите, тези който наистина са , сега са едва 20-30% , а останалите 70% вече не са учители - т.е амм не преподават вече така или са си намерили по-доходна работа и тя не е на учител или е на учител, но частен или в частсно училище/колеж, бла-бла или навън, което нас не ни грее, чак толквоа та така , колега 1. алността на личността 2. липсата на чест или по-скоро незащитването й и чак после идва следвствието от 1 -> липсата на пари и следствието от 2-> при някои не просто липстава желаниет, те не усещат нужда от промяна, щото виждаш ли и онзи би направил така.. е сори онзи да , ама не и аз , не и ти , не и тя .. и е*ати .. то промяна, значи смяна на посоката в нашият случей ... Така че ... има алчност и алчност , егоизъм и егоизъм и не казвам , че не съм човек , точно обранотно - СЪМ и ... затова знам за какво говря , но има ралзика от това да имаш съвест и да нямаш. (точка). мм така че gat3way , темата е весела + не съм казал , че на вън е супер , казвам само хората ти дават да пробваш, иска шда пробваш - заповядай пробвай , това не значи че ще ти помогнат ..., даже може би напротив , ако си чужденец в началото, но поне няма да ти пречат и ще ти дадът да пробваш. Както казвам ... в Германия искаш лаборатория за дейности извън упражнения, но учебни .. за теб или някоя група студенти , ок ... заповядай тук не че няма лаб (това едно на ръка), такова нещо рядко ще стане ! (поне в близките 10г, че и повече) пп: до 5 г вече няма да има много преподавателите с опит в ТУ, казаха го по новините , казвали са го и в самото ТУ - факт. защо ми не му плащат достатъчно на даскала да седи и да гледа манталитета на 90% студентите е като на 90% депутатите , пука ми , нали е държавно , да уча ли че защо - има по-лесен начин, идеи ли ? - пари , жени , коли ,супер ... еми ок , аз няма проблем - кефи те САМО това ... добре ,хубаво, ама защо трябва да си го взимаш по най-отвратителният начин ? а проблемтие са хиляди .. и т.н ... ехх пак се разговорих , Smith я направи една тема , като отделиш последните 2 мнение, т.е това и на gat3way. Само тези двете, първото ми мнение си е по темата и не искам да се маха, просто защото е по-темата на темата :-D а иначе , всеки има право на мнение и дори ма вероятност много да греша, но ... това е моето мнение ... :-) и го казвам, който иска да не чете ;-) който не е съгалсен ок , въпреки че ... фактите са си факти , поне тях можем да обсъдим :-) ако не мненията ни :-D Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: tarator в Sep 18, 2007, 23:36 gateway,
Не можете да си позволите да се върна. В България не се дават пари за научноизследователска дейност. Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: task_struct в Sep 19, 2007, 02:55
Иначе за управлението на държавата смятам, че ще стане както в Библията за Мойсей и 40 години бродене. Докато има хора, който си спомнят социализма, няма да се оправим. Та все пак повечето от тези, който са опозиция на БСП, преди са били за тях. Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: BULFON в Sep 19, 2007, 10:10 Среща тази вечер, 20.30, Кривото на Будапеща. Аз ще нося бутилка вино и платки. Ще ме познаете по зелената риза.
Ако някой часът му е неудобен бързо да коментира! Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: BULFON в Sep 19, 2007, 10:15 И още нещо - може ли всеки да направи по една страница в която да сложи връзка към решението си или поне да сложи връзка към работеща услуга. За да можем да напишем тест за резултатите
Ако някой няма машина, която да е публично достъпна ще измислим нещо Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 19, 2007, 12:04 Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: the_real_maniac в Sep 19, 2007, 12:12 СТана ми весело като прочетох последните няколко коментара, нищо че 2 бяха сериозни :-)
А сега нова задача: Задача 3 - почвайте да пишете експлойти за написаните вече мрежови услуги ххххххх хаххах .. сори, обаче в момента това ми е супер смешно, защото имаме услуга, имаме порт, имаме публично достъпно ип/адрес... какво остава само едно - нова задача , ПРОДЪЛЖЕНИЕ на предишната :-D :-) Denial of Service ... xxxx пък и ще е весело наистина , хх ;-) :-) просто .. нова задача спрете fortune .. отговор : you can't stop the signal/aka the future :-D *rofl* както се казва хаха пп: знам какво значи думата fortune, но има общо с бъдещето ,, та и затова малко игра на думи :-) Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 19, 2007, 12:40 @the_real_maniac
точно това казах и аз
Само да ти кажа ... имам ти ИП-то хахаххахахаа Довечера на линия ли си? Едит: офлайн линия имах предвид Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: task_struct в Sep 19, 2007, 13:34 Леле к`ви неща пиша, когата съм подпийнал
Иначе по задачата: Аз нямам къде да я кача Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: Hapkoc в Sep 19, 2007, 14:50 http://fortune.mamul.org:8082/fortune
http://fortune.mamul.org:8082/code http://fortune.mamul.org:8082/ Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: zeridon в Sep 19, 2007, 14:57 @task_struct:
http://imbuza.no-ip.org:9999/ там ти е решението. Само е компилирано с променен юзер и лог файл ... а да трябваше да си инсталирам и фортунес ... дано сета да ви хареса Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: task_struct в Sep 19, 2007, 16:26 Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: BULFON в Sep 19, 2007, 16:48 Кривото, ул. Будапеща, София
начало 20.30 масата е горе, в "градината" Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: VladSun в Sep 19, 2007, 16:58
/offtopic Кой от двамата муахахаха Титла: Задача 2 - 10.09 - 16.09 - quotes web service Публикувано от: NikiAlexandrov в Sep 19, 2007, 17:48 Този път може и аз да се появя Ще ме познаете по блузата с "Unix-like" на нея
|